Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
GNOME:Next
tecla-keyboard-layout-viewer
tecla-47.0.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File tecla-47.0.obscpio of Package tecla-keyboard-layout-viewer
07070100000000000081A400000000000000000000000166E7F90D00000003000000000000000000000000000000000000001600000000tecla-47.0/.gitignore*~ 07070100000001000081A400000000000000000000000166E7F90D000046AD000000000000000000000000000000000000001300000000tecla-47.0/LICENSE GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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. <signature of Ty Coon>, 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 Lesser General Public License instead of this License. 07070100000002000081A400000000000000000000000166E7F90D0000041F000000000000000000000000000000000000001000000000tecla-47.0/NEWSNEW in 47.0 =========== - Translation updates NEW in 47.rc ============ - Add --parent-handle command line option to integrate as a "modal dialog". - Translation updates NEW in 47.beta ============== - Translation updates - Set window icon NEW in 46.0 =========== - Translation updates NEW in 46.rc ============ - Translation updates NEW in 46.beta ============== - Translation updates NEW in 46.alpha =============== - Add --version command line option - Fix blurry keys - Fix crash on unknown keymap - Translation updates NEW in 45.0 =========== - Added shortcuts to exit the dialog - Fix UI in RTL environments - Fix a11y initialization - Translation updates NEW in 45.rc ============ - Handle 105 key layouts - Handle keymap variants in commandline arguments - Fix overeager keymap listener overriding commandline arguments. - Build fixes for NixOS - Add .pc file for build-time detection - Fix included license - Translation updates NEW in 45.beta =============== - Translation updates NEW in 45.alpha =============== - Initial release 07070100000003000081A400000000000000000000000166E7F90D00000132000000000000000000000000000000000000001500000000tecla-47.0/README.md# Tecla Tecla is a keyboard layout viewer. Tecla uses GTK/Libadwaita for UI, and libxkbcommon to deal with keyboard maps. ## How to report bugs If you found a problem or have a feature suggestion, please report the issue to the GNOME [bug tracking system](https://gitlab.gnome.org/GNOME/tecla/issues). 07070100000004000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000001000000000tecla-47.0/data07070100000005000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000001600000000tecla-47.0/data/icons07070100000006000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000001E00000000tecla-47.0/data/icons/hicolor07070100000007000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000002700000000tecla-47.0/data/icons/hicolor/scalable07070100000008000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000002C00000000tecla-47.0/data/icons/hicolor/scalable/apps07070100000009000081A400000000000000000000000166E7F90D0000721D000000000000000000000000000000000000004600000000tecla-47.0/data/icons/hicolor/scalable/apps/org.gnome.Tecla.Devel.svg<?xml version="1.0" encoding="UTF-8"?> <svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="9.197266" x2="119.482384" y1="112.655273" y2="112.655273"> <stop offset="0" stop-color="#5e5c64"/> <stop offset="0.0378502" stop-color="#77767b"/> <stop offset="0.0732786" stop-color="#3d3846"/> <stop offset="0.92921" stop-color="#241f31"/> <stop offset="0.97104" stop-color="#5e5c64"/> <stop offset="1" stop-color="#5e5c64"/> </linearGradient> <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="70.51045090805" x2="120.43254953971" y1="113.86664367826" y2="113.86664367826"> <stop offset="0" stop-color="#5e5c64"/> <stop offset="0.0378502" stop-color="#77767b"/> <stop offset="0.0732786" stop-color="#3d3846"/> <stop offset="0.791488" stop-color="#241f31"/> <stop offset="0.916595" stop-color="#5e5c64"/> <stop offset="1" stop-color="#5e5c64"/> </linearGradient> <clipPath id="c"> <rect height="128" width="128"/> </clipPath> <clipPath id="d"> <rect height="128" width="128"/> </clipPath> <filter id="e" height="100%" width="100%" x="0%" y="0%"> <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/> </filter> <mask id="f"> <g clip-path="url(#d)" filter="url(#e)"> <g clip-path="url(#c)"> <path d="m 16.9375 34 h 94.125 c 4.9375 0 8.9375 4 8.9375 8.9375 v 64.125 c 0 4.9375 -4 8.9375 -8.9375 8.9375 h -94.125 c -4.9375 0 -8.9375 -4 -8.9375 -8.9375 v -64.125 c 0 -4.9375 4 -8.9375 8.9375 -8.9375 z m 0 0" fill="url(#a)"/> <path d="m 16.34375 28 h 95.3125 c 4.609375 0 8.34375 3.734375 8.34375 8.34375 v 67.3125 c 0 4.609375 -3.734375 8.34375 -8.34375 8.34375 h -95.3125 c -4.609375 0 -8.34375 -3.734375 -8.34375 -8.34375 v -67.3125 c 0 -4.609375 3.734375 -8.34375 8.34375 -8.34375 z m 0 0" fill="#5e5c64"/> <path d="m 107 96 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -42 0 h 34 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -34 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m 97.960938 -22.921875 h 0.039062 c 1.660156 0 3 1.339844 3 3 v 15.84375 c 0 1.660156 -1.339844 3 -3 3 h -0.039062 c -1.664063 0 -3 -1.339844 -3 -3 v -15.84375 c 0 -1.660156 1.335937 -3 3 -3 z m -5.960938 -5.078125 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -8 14 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 64 -14 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m 84 -14.058594 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 78 -9.941406 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -22 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -13.878906 0 h 5.757812 c 1.730469 0 3.121094 1.339844 3.121094 3 s -1.390625 3 -3.121094 3 h -5.757812 c -1.730469 0 -3.121094 -1.339844 -3.121094 -3 s 1.390625 -3 3.121094 -3 z m 0 0" fill="#241f31"/> <path d="m 107 96 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -42 0 h 34 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -34 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m 97.960938 -23.84375 h 0.039062 c 1.660156 0 3 1.339844 3 3 v 15.84375 c 0 1.660156 -1.339844 3 -3 3 h -0.039062 c -1.664063 0 -3 -1.339844 -3 -3 v -15.84375 c 0 -1.660156 1.335937 -3 3 -3 z m -5.960938 -4.15625 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -8 14 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 64 -14 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m 84 -14.058594 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 78 -9.941406 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -22 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m 0 0" fill="#3d3846"/> <path d="m 101.960938 31.917969 c 1.125 0 2.039062 0.914062 2.039062 2.042969 c 0 1.125 -0.914062 2.039062 -2.039062 2.039062 c -1.128907 0 -2.042969 -0.914062 -2.042969 -2.039062 c 0 -1.128907 0.914062 -2.042969 2.042969 -2.042969 z m 0 0" fill="#f9f06b"/> <path d="m 110 32 c 1.105469 0 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 z m 0 0" fill="#f9f06b"/> <path d="m 77.550781 68.582031 h 35.097657 c 4.058593 0 7.351562 2.898438 7.351562 6.472657 v 30.472656 c 0 3.574218 -3.292969 6.472656 -7.351562 6.472656 h -35.097657 c -4.0625 0 -7.351562 -2.898438 -7.351562 -6.472656 v -30.472656 c 0 -3.574219 3.289062 -6.472657 7.351562 -6.472657 z m 0 0" fill="url(#b)" fill-rule="evenodd"/> <path d="m 96.964844 249.023438 v -30.003907 c 0 -4.417969 -3.578125 -8.003906 -8 -8.007812 l -19.976563 -0.011719 c -2.121093 0 -4.152343 0.839844 -5.652343 2.339844 s -2.339844 3.535156 -2.335938 5.652344 l 0.011719 12" fill="none" stroke="#deddda" stroke-dasharray="2 2" stroke-width="2" transform="matrix(1 0 0 1 0 -172)"/> <path d="m 78.191406 237.261719 h 33.796875 c 3.910157 0 7.078125 2.785156 7.078125 6.21875 v 29.285156 c 0 3.433594 -3.167968 6.21875 -7.078125 6.21875 h -33.796875 c -3.910156 0 -7.082031 -2.785156 -7.082031 -6.21875 v -29.285156 c 0 -3.433594 3.171875 -6.21875 7.082031 -6.21875 z m 0 0" fill="#3d3846" fill-rule="evenodd" stroke="#deddda" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.03227" transform="matrix(1 0 0 1 0 -172)"/> <path d="m 56.796875 225.347656 h 6.40625 c 1.320313 0 2.386719 1.066406 2.386719 2.386719 v 5.378906 c 0 1.320313 -1.066406 2.386719 -2.386719 2.386719 h -6.40625 c -1.320313 0 -2.386719 -1.066406 -2.386719 -2.386719 v -5.378906 c 0 -1.320313 1.066406 -2.386719 2.386719 -2.386719 z m 0 0" fill="#3d3846" fill-rule="evenodd" stroke="#deddda" stroke-linecap="round" stroke-linejoin="round" transform="matrix(1 0 0 1 0 -172)"/> <path d="m 95.003906 98 c 5.007813 0 8.117188 -2.917969 8.269532 -7.332031 h -5.300782 c -0.210937 1.894531 -1.347656 2.929687 -2.902344 2.929687 c -1.992187 0 -3.292968 -1.6875 -3.292968 -4.859375 c 0 -3.148437 1.3125 -4.832031 3.292968 -4.832031 c 1.625 0 2.679688 1.101562 2.902344 2.925781 h 5.300782 c -0.128907 -4.390625 -3.328126 -7.25 -8.28125 -7.25 c -5.605469 0 -8.992188 3.742188 -8.992188 9.214844 c 0 5.449219 3.363281 9.203125 9.003906 9.203125 z m -2.289062 -25.679688 h -4.753906 v 0.152344 l 5.023437 5.203125 h 4.070313 l 5.011718 -5.203125 v -0.152344 h -4.742187 l -2.308594 2.695313 z m 0 0" fill="#ffffff"/> </g> </g> </mask> <mask id="g"> <g filter="url(#e)"> <rect fill-opacity="0.8" height="128" width="128"/> </g> </mask> <linearGradient id="h" gradientTransform="matrix(0 0.37 -0.98462 0 295.38501 -30.360001)" gradientUnits="userSpaceOnUse" x1="300" x2="428" y1="235" y2="235"> <stop offset="0" stop-color="#f9f06b"/> <stop offset="1" stop-color="#f5c211"/> </linearGradient> <clipPath id="i"> <rect height="128" width="128"/> </clipPath> <clipPath id="j"> <rect height="128" width="128"/> </clipPath> <path d="m 16.9375 34 h 94.125 c 4.9375 0 8.9375 4 8.9375 8.9375 v 64.125 c 0 4.9375 -4 8.9375 -8.9375 8.9375 h -94.125 c -4.9375 0 -8.9375 -4 -8.9375 -8.9375 v -64.125 c 0 -4.9375 4 -8.9375 8.9375 -8.9375 z m 0 0" fill="url(#a)"/> <path d="m 16.34375 28 h 95.3125 c 4.609375 0 8.34375 3.734375 8.34375 8.34375 v 67.3125 c 0 4.609375 -3.734375 8.34375 -8.34375 8.34375 h -95.3125 c -4.609375 0 -8.34375 -3.734375 -8.34375 -8.34375 v -67.3125 c 0 -4.609375 3.734375 -8.34375 8.34375 -8.34375 z m 0 0" fill="#5e5c64"/> <path d="m 107 96 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -42 0 h 34 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -34 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m 97.960938 -22.921875 h 0.039062 c 1.660156 0 3 1.339844 3 3 v 15.84375 c 0 1.660156 -1.339844 3 -3 3 h -0.039062 c -1.664063 0 -3 -1.339844 -3 -3 v -15.84375 c 0 -1.660156 1.335937 -3 3 -3 z m -5.960938 -5.078125 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -8 14 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 64 -14 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m 84 -14.058594 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 78 -9.941406 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -22 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -13.878906 0 h 5.757812 c 1.730469 0 3.121094 1.339844 3.121094 3 s -1.390625 3 -3.121094 3 h -5.757812 c -1.730469 0 -3.121094 -1.339844 -3.121094 -3 s 1.390625 -3 3.121094 -3 z m 0 0" fill="#241f31"/> <path d="m 107 96 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -42 0 h 34 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -34 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m 97.960938 -23.84375 h 0.039062 c 1.660156 0 3 1.339844 3 3 v 15.84375 c 0 1.660156 -1.339844 3 -3 3 h -0.039062 c -1.664063 0 -3 -1.339844 -3 -3 v -15.84375 c 0 -1.660156 1.335937 -3 3 -3 z m -5.960938 -4.15625 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -8 14 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 64 -14 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m 84 -14.058594 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 78 -9.941406 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -22 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m 0 0" fill="#3d3846"/> <path d="m 101.960938 31.917969 c 1.125 0 2.039062 0.914062 2.039062 2.042969 c 0 1.125 -0.914062 2.039062 -2.039062 2.039062 c -1.128907 0 -2.042969 -0.914062 -2.042969 -2.039062 c 0 -1.128907 0.914062 -2.042969 2.042969 -2.042969 z m 0 0" fill="#f9f06b"/> <path d="m 110 32 c 1.105469 0 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 z m 0 0" fill="#f9f06b"/> <path d="m 77.550781 68.582031 h 35.097657 c 4.058593 0 7.351562 2.898438 7.351562 6.472657 v 30.472656 c 0 3.574218 -3.292969 6.472656 -7.351562 6.472656 h -35.097657 c -4.0625 0 -7.351562 -2.898438 -7.351562 -6.472656 v -30.472656 c 0 -3.574219 3.289062 -6.472657 7.351562 -6.472657 z m 0 0" fill="url(#b)" fill-rule="evenodd"/> <g stroke="#deddda"> <path d="m 96.964844 77.023438 v -30.003907 c 0 -4.417969 -3.578125 -8.003906 -8 -8.007812 l -19.976563 -0.011719 c -2.121093 0 -4.152343 0.839844 -5.652343 2.339844 s -2.339844 3.535156 -2.335938 5.652344 l 0.011719 12" fill="none" stroke-dasharray="2 2" stroke-width="2"/> <path d="m 78.191406 65.261719 h 33.796875 c 3.910157 0 7.078125 2.785156 7.078125 6.21875 v 29.285156 c 0 3.433594 -3.167968 6.21875 -7.078125 6.21875 h -33.796875 c -3.910156 0 -7.082031 -2.785156 -7.082031 -6.21875 v -29.285156 c 0 -3.433594 3.171875 -6.21875 7.082031 -6.21875 z m 0 0" fill="#3d3846" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.03227"/> <path d="m 56.796875 53.347656 h 6.40625 c 1.320313 0 2.386719 1.066406 2.386719 2.386719 v 5.378906 c 0 1.320313 -1.066406 2.386719 -2.386719 2.386719 h -6.40625 c -1.320313 0 -2.386719 -1.066406 -2.386719 -2.386719 v -5.378906 c 0 -1.320313 1.066406 -2.386719 2.386719 -2.386719 z m 0 0" fill="#3d3846" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/> </g> <path d="m 95.003906 98 c 5.007813 0 8.117188 -2.917969 8.269532 -7.332031 h -5.300782 c -0.210937 1.894531 -1.347656 2.929687 -2.902344 2.929687 c -1.992187 0 -3.292968 -1.6875 -3.292968 -4.859375 c 0 -3.148437 1.3125 -4.832031 3.292968 -4.832031 c 1.625 0 2.679688 1.101562 2.902344 2.925781 h 5.300782 c -0.128907 -4.390625 -3.328126 -7.25 -8.28125 -7.25 c -5.605469 0 -8.992188 3.742188 -8.992188 9.214844 c 0 5.449219 3.363281 9.203125 9.003906 9.203125 z m -2.289062 -25.679688 h -4.753906 v 0.152344 l 5.023437 5.203125 h 4.070313 l 5.011718 -5.203125 v -0.152344 h -4.742187 l -2.308594 2.695313 z m 0 0" fill="#ffffff"/> <g clip-path="url(#j)" mask="url(#f)"> <g clip-path="url(#i)" mask="url(#g)"> <path d="m 128 80.640625 v 47.359375 h -128 v -47.359375 z m 0 0" fill="url(#h)"/> <path d="m 13.308594 80.640625 l 47.355468 47.359375 h 21.214844 l -47.359375 -47.359375 z m 42.421875 0 l 47.363281 47.359375 h 21.214844 l -47.363282 -47.359375 z m 42.429687 0 l 29.839844 29.839844 v -21.210938 l -8.628906 -8.628906 z m -98.160156 7.90625 v 21.214844 l 18.238281 18.238281 h 21.214844 z m 0 0"/> </g> </g> </svg> 0707010000000A000081A400000000000000000000000166E7F90D000037A8000000000000000000000000000000000000004000000000tecla-47.0/data/icons/hicolor/scalable/apps/org.gnome.Tecla.svg<?xml version="1.0" encoding="UTF-8"?> <svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="9.197266" x2="119.482384" y1="112.655273" y2="112.655273"> <stop offset="0" stop-color="#5e5c64"/> <stop offset="0.0378502" stop-color="#77767b"/> <stop offset="0.0732786" stop-color="#3d3846"/> <stop offset="0.92921" stop-color="#241f31"/> <stop offset="0.97104" stop-color="#5e5c64"/> <stop offset="1" stop-color="#5e5c64"/> </linearGradient> <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="70.51045090805" x2="120.43254953971" y1="113.86664367826" y2="113.86664367826"> <stop offset="0" stop-color="#5e5c64"/> <stop offset="0.0378502" stop-color="#77767b"/> <stop offset="0.0732786" stop-color="#3d3846"/> <stop offset="0.791488" stop-color="#241f31"/> <stop offset="0.916595" stop-color="#5e5c64"/> <stop offset="1" stop-color="#5e5c64"/> </linearGradient> <path d="m 16.9375 34 h 94.125 c 4.9375 0 8.9375 4 8.9375 8.9375 v 64.125 c 0 4.9375 -4 8.9375 -8.9375 8.9375 h -94.125 c -4.9375 0 -8.9375 -4 -8.9375 -8.9375 v -64.125 c 0 -4.9375 4 -8.9375 8.9375 -8.9375 z m 0 0" fill="url(#a)"/> <path d="m 16.34375 28 h 95.3125 c 4.609375 0 8.34375 3.734375 8.34375 8.34375 v 67.3125 c 0 4.609375 -3.734375 8.34375 -8.34375 8.34375 h -95.3125 c -4.609375 0 -8.34375 -3.734375 -8.34375 -8.34375 v -67.3125 c 0 -4.609375 3.734375 -8.34375 8.34375 -8.34375 z m 0 0" fill="#5e5c64"/> <path d="m 107 96 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -42 0 h 34 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -34 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m 97.960938 -22.921875 h 0.039062 c 1.660156 0 3 1.339844 3 3 v 15.84375 c 0 1.660156 -1.339844 3 -3 3 h -0.039062 c -1.664063 0 -3 -1.339844 -3 -3 v -15.84375 c 0 -1.660156 1.335937 -3 3 -3 z m -5.960938 -5.078125 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -8 14 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 64 -14 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.335938 -3 3 -3 z m 84 -14.058594 h 14 c 1.664062 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.335938 3 -3 3 h -14 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 6 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -6 c 0 -1.660156 1.339844 -3 3 -3 z m 78 -9.941406 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -22 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 s -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 s 1.339844 -3 3 -3 z m -13.878906 0 h 5.757812 c 1.730469 0 3.121094 1.339844 3.121094 3 s -1.390625 3 -3.121094 3 h -5.757812 c -1.730469 0 -3.121094 -1.339844 -3.121094 -3 s 1.390625 -3 3.121094 -3 z m 0 0" fill="#241f31"/> <path d="m 107 96 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -42 0 h 34 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -34 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m 97.960938 -23.84375 h 0.039062 c 1.660156 0 3 1.339844 3 3 v 15.84375 c 0 1.660156 -1.339844 3 -3 3 h -0.039062 c -1.664063 0 -3 -1.339844 -3 -3 v -15.84375 c 0 -1.660156 1.335937 -3 3 -3 z m -5.960938 -4.15625 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -8 14 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 64 -14 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -22 0 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.664062 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.335938 -3 3 -3 z m 84 -14.058594 h 14 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -14 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -70 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 56 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m -14 0 h 6 c 1.660156 0 3 1.339844 3 3 v 5 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -5 c 0 -1.660156 1.339844 -3 3 -3 z m 78 -9.941406 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -22 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m -14 0 h 6 c 1.660156 0 3 1.113281 3 2.5 s -1.339844 2.5 -3 2.5 h -6 c -1.660156 0 -3 -1.113281 -3 -2.5 s 1.339844 -2.5 3 -2.5 z m 0 0" fill="#3d3846"/> <path d="m 101.960938 31.917969 c 1.125 0 2.039062 0.914062 2.039062 2.042969 c 0 1.125 -0.914062 2.039062 -2.039062 2.039062 c -1.128907 0 -2.042969 -0.914062 -2.042969 -2.039062 c 0 -1.128907 0.914062 -2.042969 2.042969 -2.042969 z m 0 0" fill="#f9f06b"/> <path d="m 110 32 c 1.105469 0 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 z m 0 0" fill="#f9f06b"/> <path d="m 77.550781 68.582031 h 35.097657 c 4.058593 0 7.351562 2.898438 7.351562 6.472657 v 30.472656 c 0 3.574218 -3.292969 6.472656 -7.351562 6.472656 h -35.097657 c -4.0625 0 -7.351562 -2.898438 -7.351562 -6.472656 v -30.472656 c 0 -3.574219 3.289062 -6.472657 7.351562 -6.472657 z m 0 0" fill="url(#b)" fill-rule="evenodd"/> <g stroke="#deddda"> <path d="m 96.964844 77.023438 v -30.003907 c 0 -4.417969 -3.578125 -8.003906 -8 -8.007812 l -19.976563 -0.011719 c -2.121093 0 -4.152343 0.839844 -5.652343 2.339844 s -2.339844 3.535156 -2.335938 5.652344 l 0.011719 12" fill="none" stroke-dasharray="2 2" stroke-width="2"/> <path d="m 78.191406 65.261719 h 33.796875 c 3.910157 0 7.078125 2.785156 7.078125 6.21875 v 29.285156 c 0 3.433594 -3.167968 6.21875 -7.078125 6.21875 h -33.796875 c -3.910156 0 -7.082031 -2.785156 -7.082031 -6.21875 v -29.285156 c 0 -3.433594 3.171875 -6.21875 7.082031 -6.21875 z m 0 0" fill="#3d3846" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.03227"/> <path d="m 56.796875 53.347656 h 6.40625 c 1.320313 0 2.386719 1.066406 2.386719 2.386719 v 5.378906 c 0 1.320313 -1.066406 2.386719 -2.386719 2.386719 h -6.40625 c -1.320313 0 -2.386719 -1.066406 -2.386719 -2.386719 v -5.378906 c 0 -1.320313 1.066406 -2.386719 2.386719 -2.386719 z m 0 0" fill="#3d3846" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/> </g> <path d="m 95.003906 98 c 5.007813 0 8.117188 -2.917969 8.269532 -7.332031 h -5.300782 c -0.210937 1.894531 -1.347656 2.929687 -2.902344 2.929687 c -1.992187 0 -3.292968 -1.6875 -3.292968 -4.859375 c 0 -3.148437 1.3125 -4.832031 3.292968 -4.832031 c 1.625 0 2.679688 1.101562 2.902344 2.925781 h 5.300782 c -0.128907 -4.390625 -3.328126 -7.25 -8.28125 -7.25 c -5.605469 0 -8.992188 3.742188 -8.992188 9.214844 c 0 5.449219 3.363281 9.203125 9.003906 9.203125 z m -2.289062 -25.679688 h -4.753906 v 0.152344 l 5.023437 5.203125 h 4.070313 l 5.011718 -5.203125 v -0.152344 h -4.742187 l -2.308594 2.695313 z m 0 0" fill="#ffffff"/> </svg> 0707010000000B000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000002700000000tecla-47.0/data/icons/hicolor/symbolic0707010000000C000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000002C00000000tecla-47.0/data/icons/hicolor/symbolic/apps0707010000000D000081A400000000000000000000000166E7F90D00000A85000000000000000000000000000000000000004900000000tecla-47.0/data/icons/hicolor/symbolic/apps/org.gnome.Tecla-symbolic.svg<?xml version="1.0" encoding="UTF-8"?> <svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg"> <path d="m 58.847578 73.999912 h -12.179683 v -27.99999 h 11.808589 c 6.734373 0 12.191402 5.460936 12.191402 12.195308 v 3.984374 c 0 6.527341 -5.28906 11.820308 -11.820308 11.820308 z m 0 0" fill="none" stroke="#ffffff" stroke-width="8"/> <path d="m 2.5 2 c -1.367188 0 -2.5 1.132812 -2.5 2.5 v 7 c 0 1.367188 1.132812 2.5 2.5 2.5 h 5.5 v -2 h -2.5 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 h 2.5 v -1.5 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -1 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 0.5 c 0 -0.941406 0.617188 -1.734375 1.46875 -2 h -0.96875 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.191406 -0.109375 0.355469 -0.269531 0.4375 c 0.121093 -0.019531 0.238281 -0.03125 0.363281 -0.03125 h 1.117188 c -0.128907 -0.089844 -0.210938 -0.238281 -0.210938 -0.40625 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.167969 -0.082031 0.316406 -0.210938 0.40625 h 3.210938 v -1.40625 c 0 -1.367188 -1.132812 -2.5 -2.5 -2.5 z m 0 2 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -1 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.242188 0.171875 -0.445312 0.398438 -0.488281 c 0.03125 -0.007813 0.066406 -0.011719 0.101562 -0.011719 z m 3 0 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -1 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m -2 3 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -1 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m -1 3 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -1 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0"/> <path d="m 13.125 16 c 1.742188 0 2.824219 -1.011719 2.875 -2.546875 h -1.839844 c -0.074218 0.65625 -0.46875 1.015625 -1.007812 1.015625 c -0.695313 0 -1.144532 -0.582031 -1.144532 -1.6875 c 0 -1.09375 0.453126 -1.675781 1.144532 -1.675781 c 0.5625 0 0.929687 0.382812 1.007812 1.015625 h 1.839844 c -0.042969 -1.527344 -1.15625 -2.519532 -2.878906 -2.519532 c -1.945313 0 -3.121094 1.300782 -3.121094 3.203126 c 0 1.890624 1.167969 3.195312 3.125 3.195312 z m -0.792969 -8.921875 h -1.652343 v 0.054687 l 1.746093 1.808594 h 1.414063 l 1.742187 -1.808594 v -0.054687 h -1.648437 l -0.800782 0.9375 z m 0 0"/> </svg> 0707010000000E000081A400000000000000000000000166E7F90D000001D0000000000000000000000000000000000000002200000000tecla-47.0/data/icons/meson.buildapplication_id = 'org.gnome.Tecla' scalable_dir = join_paths('hicolor', 'scalable', 'apps') install_data( join_paths(scalable_dir, ('@0@.svg').format(application_id)), install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir) ) symbolic_dir = join_paths('hicolor', 'symbolic', 'apps') install_data( join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)), install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir) ) 0707010000000F000081A400000000000000000000000166E7F90D0000BCB9000000000000000000000000000000000000002A00000000tecla-47.0/data/icons/org.gnome.Tecla.svg<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg inkscape:export-ydpi="96" inkscape:export-xdpi="96" inkscape:export-filename="Template.png" width="192" height="152" id="svg11300" sodipodi:version="0.32" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" sodipodi:docname="org.notanapp.KeyboardLayout.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.0" style="display:inline;enable-background:new" viewBox="0 0 192 152" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <title id="title4162">Adwaita Icon Template</title> <defs id="defs3"> <inkscape:path-effect effect="fillet_chamfer" id="path-effect3404" is_visible="true" lpeversion="1" nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,8,0,1 @ F,0,0,1,0,8,0,1 @ F,0,0,1,0,8,0,1" unit="px" method="auto" mode="F" radius="8" chamfer_steps="1" flexible="false" use_knot_distance="true" apply_no_radius="true" apply_with_radius="true" only_selected="false" hide_knots="false" /> <linearGradient y2="236" x2="96" y1="236" x1="32" gradientTransform="translate(604.81684,170.58641)" gradientUnits="userSpaceOnUse" id="linearGradient1099" xlink:href="#linearGradient1036" /> <linearGradient id="linearGradient1036"> <stop id="stop1032" offset="0" style="stop-color:#d5d3cf;stop-opacity:1;" /> <stop id="stop1034" offset="1" style="stop-color:#f6f5f4;stop-opacity:1" /> </linearGradient> <radialGradient r="32" fy="-76" fx="-244" cy="-76" cx="-244" gradientTransform="matrix(0.88333331,0,0,0.88333331,-460.35018,463.11973)" gradientUnits="userSpaceOnUse" id="radialGradient1103" xlink:href="#linearGradient1069" /> <linearGradient id="linearGradient1069"> <stop id="stop1065" offset="0" style="stop-color:#d5d3cf;stop-opacity:1" /> <stop id="stop1067-1" offset="1" style="stop-color:#949390;stop-opacity:1" /> </linearGradient> <linearGradient gradientUnits="userSpaceOnUse" y2="232" x2="64" y1="262.5" x1="64" id="linearGradient1027" xlink:href="#linearGradient1025" gradientTransform="translate(-470.5864,432.81685)" /> <linearGradient id="linearGradient1025"> <stop id="stop1021" offset="0" style="stop-color:#9a9996;stop-opacity:1" /> <stop id="stop1023" offset="1" style="stop-color:#77767b;stop-opacity:1" /> </linearGradient> <inkscape:path-effect effect="spiro" id="path-effect35304-9" is_visible="true" /> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1609-7"> <path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path1611-5" d="m 252,116 28,-28 v -8 h -36 v 36 z" style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> </clipPath> <linearGradient id="linearGradient1697"> <stop id="stop1685" offset="0" style="stop-color:#deddda;stop-opacity:1" /> <stop style="stop-color:#eeeeec;stop-opacity:1" offset="0.04545455" id="stop1687" /> <stop id="stop1689" offset="0.09090909" style="stop-color:#deddda;stop-opacity:1" /> <stop style="stop-color:#deddda;stop-opacity:1" offset="0.90909094" id="stop1691" /> <stop id="stop1693" offset="0.95454544" style="stop-color:#eeeeec;stop-opacity:1" /> <stop id="stop1695" offset="1" style="stop-color:#c0bfbc;stop-opacity:1" /> </linearGradient> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1289"> <path style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" d="m 64,-148 h 64 l 64,-64 64,64 h 192 c 17.728,0 32,14.272 32,32 v 288 c 0,17.728 -14.272,32 -32,32 H 256 l -64,-64 -64,64 H 64 C 46.272,204 32,189.728 32,172 v -288 c 0,-17.728 14.408898,-34.19889 32,-32 z" id="path1291" inkscape:connector-curvature="0" sodipodi:nodetypes="scccsssscccssss" /> </clipPath> <linearGradient id="paint3_linear-2-6-5" x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,6,-12,0,-64,209.99687)"> <stop stop-color="#C01C27" id="stop91-0-7-4" /> <stop offset="1" stop-color="#E01B24" id="stop93-2-5-7" /> </linearGradient> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1609"> <path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path1611" d="m 252,116 28,-28 v -8 h -36 v 36 z" style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> </clipPath> <clipPath clipPathUnits="userSpaceOnUse" id="clipath_lpe_path-effect1303"> <circle style="font-variation-settings:normal;display:block;opacity:1;vector-effect:none;fill:#77767b;fill-opacity:1;stroke:none;stroke-width:5.04302;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;stop-color:#000000;stop-opacity:1" id="circle1305" cx="541.88373" cy="647.72638" r="73.975525" /> </clipPath> <inkscape:path-effect effect="powerclip" id="path-effect1303" is_visible="true" lpeversion="1" inverse="true" flatten="false" hide_clip="false" message="Use fill-rule evenodd on <b>fill and stroke</b> dialog if no flatten result after convert clip to paths." /> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3835-3"> <rect style="display:inline;fill:#3d3846;stroke:none;stroke-width:1;-inkscape-stroke:none;enable-background:new;stop-color:#000000" id="rect3837-6" width="112.0003" height="86.00029" x="7.9997025" y="199.99969" rx="8" ry="7.9999995" /> </clipPath> <inkscape:path-effect effect="fillet_chamfer" id="path-effect1546" is_visible="true" lpeversion="1" satellites_param="F,0,0,1,0,11.821045,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,12.193933,0,1" unit="px" method="auto" mode="F" radius="0" chamfer_steps="1" flexible="false" use_knot_distance="true" apply_no_radius="true" apply_with_radius="true" only_selected="false" hide_knots="false" nodesatellites_param="F,0,0,1,0,11.821045,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,12.193933,0,1" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient1869" id="linearGradient1871" x1="9.1972656" y1="284.65527" x2="119.48238" y2="284.65527" gradientUnits="userSpaceOnUse" /> <linearGradient inkscape:collect="always" id="linearGradient1869"> <stop style="stop-color:#5e5c64;stop-opacity:1;" offset="0" id="stop1865" /> <stop style="stop-color:#77767b;stop-opacity:1" offset="0.03785021" id="stop2643" /> <stop style="stop-color:#3d3846;stop-opacity:1" offset="0.07327861" id="stop2641" /> <stop style="stop-color:#241f31;stop-opacity:1" offset="0.92920959" id="stop2637" /> <stop style="stop-color:#5e5c64;stop-opacity:1" offset="0.97104007" id="stop2639" /> <stop style="stop-color:#5e5c64;stop-opacity:1;" offset="1" id="stop1867" /> </linearGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2606" id="linearGradient2343" gradientUnits="userSpaceOnUse" x1="71.432686" y1="284.65527" x2="119.48238" y2="284.65527" gradientTransform="matrix(1.0389681,0,0,1.0389681,-3.7058237,-9.8810756)" /> <linearGradient inkscape:collect="always" id="linearGradient2606"> <stop style="stop-color:#5e5c64;stop-opacity:1;" offset="0" id="stop2594" /> <stop style="stop-color:#77767b;stop-opacity:1" offset="0.03785021" id="stop2596" /> <stop style="stop-color:#3d3846;stop-opacity:1" offset="0.07327861" id="stop2598" /> <stop style="stop-color:#241f31;stop-opacity:1" offset="0.79148775" id="stop2600" /> <stop style="stop-color:#5e5c64;stop-opacity:1" offset="0.9165951" id="stop2602" /> <stop style="stop-color:#5e5c64;stop-opacity:1;" offset="1" id="stop2604" /> </linearGradient> <inkscape:path-effect effect="fillet_chamfer" id="path-effect3404-1" is_visible="true" lpeversion="1" nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,8,0,1 @ F,0,0,1,0,8,0,1 @ F,0,0,1,0,8,0,1" unit="px" method="auto" mode="F" radius="8" chamfer_steps="1" flexible="false" use_knot_distance="true" apply_no_radius="true" apply_with_radius="true" only_selected="false" hide_knots="false" /> </defs> <sodipodi:namedview stroke="#ef2929" fill="#f57900" id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="0.25490196" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2.8284271" inkscape:cx="-16.018274" inkscape:cy="11.797527" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:showpageshadow="false" inkscape:window-width="1920" inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="27" width="400px" height="300px" inkscape:snap-nodes="true" inkscape:snap-bbox="true" objecttolerance="7" gridtolerance="12" guidetolerance="13" inkscape:window-maximized="1" inkscape:pagecheckerboard="false" showguides="false" inkscape:guide-bbox="true" inkscape:locked="false" inkscape:measure-start="0,0" inkscape:measure-end="0,0" inkscape:object-nodes="true" inkscape:bbox-nodes="true" inkscape:snap-global="true" inkscape:object-paths="true" inkscape:snap-intersection-paths="true" inkscape:snap-bbox-edge-midpoints="true" inkscape:snap-bbox-midpoints="true" showborder="true" inkscape:snap-center="true" inkscape:snap-object-midpoints="true" inkscape:snap-midpoints="true" inkscape:snap-smooth-nodes="true" inkscape:snap-text-baseline="true" borderlayer="true" inkscape:deskcolor="#d1d1d1"> <inkscape:grid type="xygrid" id="grid5883" spacingx="2" spacingy="2" enabled="true" visible="true" empspacing="4" originx="8" originy="8" /> <sodipodi:guide position="72,16" orientation="0,1" id="guide1073" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="20,72" orientation="1,0" id="guide1075" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,112" orientation="0,1" id="guide1099" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,136" orientation="0,1" id="guide993" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="112,72" orientation="1,0" id="guide995" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="8.0000001,72" orientation="1,0" id="guide867" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="128,72" orientation="1,0" id="guide869" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,124" orientation="0,1" id="guide871" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <inkscape:grid type="xygrid" id="grid873" spacingx="1" spacingy="1" empspacing="8" color="#000000" opacity="0.49019608" empcolor="#000000" empopacity="0.08627451" dotted="true" originx="8" originy="8" /> <sodipodi:guide position="32,72" orientation="1,0" id="guide877" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="124,72" orientation="1,0" id="guide879" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,128" orientation="0,1" id="guide881" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,20" orientation="0,1" id="guide883" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="16,72" orientation="1,0" id="guide885" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="136,72" orientation="1,0" id="guide887" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,8" orientation="0,1" id="guide897" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,32" orientation="0,1" id="guide899" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="264,264" orientation="-0.70710678,0.70710678" id="guide950" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> <sodipodi:guide position="72,72" orientation="0.70710678,0.70710678" id="guide952" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,0,255)" /> </sodipodi:namedview> <metadata id="metadata4"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:creator> <cc:Agent> <dc:title>GNOME Design Team</dc:title> </cc:Agent> </dc:creator> <dc:source /> <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> <dc:title>Adwaita Icon Template</dc:title> <dc:subject> <rdf:Bag /> </dc:subject> <dc:date /> <dc:rights> <cc:Agent> <dc:title /> </cc:Agent> </dc:rights> <dc:publisher> <cc:Agent> <dc:title /> </cc:Agent> </dc:publisher> <dc:identifier /> <dc:relation /> <dc:language /> <dc:coverage /> <dc:description /> <dc:contributor> <cc:Agent> <dc:title /> </cc:Agent> </dc:contributor> </cc:Work> <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" /> <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" /> <cc:requires rdf:resource="http://creativecommons.org/ns#Notice" /> <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" /> <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> <cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" /> </cc:License> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="App Icon" inkscape:groupmode="layer" style="display:inline" transform="translate(8,-156)"> <g inkscape:groupmode="layer" id="layer4" inkscape:label="template" style="display:inline" sodipodi:insensitive="true"> <rect inkscape:label="0" y="172" x="9.2651362e-08" height="128" width="128" id="hicolor" style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> <rect style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" id="symbolic" width="16" height="16" x="160" y="172" inkscape:label="0" /> </g> <g inkscape:groupmode="layer" id="layer2" inkscape:label="baseplate" style="display:inline" sodipodi:insensitive="true"> <g style="display:inline;fill:#000000;enable-background:new" transform="matrix(7.9911709,0,0,8.0036407,-167.7909,-4846.0776)" id="g12027" inkscape:export-xdpi="12" inkscape:export-ydpi="12" /> <rect style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" id="128" width="128" height="128" x="9.2651362e-08" y="172" inkscape:label="0" /> <g id="g883" style="fill:none;fill-opacity:0.25098;stroke:#a579b3;stroke-opacity:1" transform="translate(-24,24)" /> <g id="g900" style="fill:none;fill-opacity:0.25098;stroke:#a579b3;stroke-opacity:1" transform="translate(-24,24)" /> <rect inkscape:label="" y="172" x="160" height="16" width="16" id="16" style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.332649;enable-background:new" x="0" y="167" id="text863" inkscape:label="icon-name"><tspan style="font-size:4px;stroke-width:0.332649" sodipodi:role="line" id="tspan861" x="0" y="167">Hicolor</tspan></text> <text inkscape:label="icon-name" id="text867" y="167" x="160" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.332649;enable-background:new" xml:space="preserve"><tspan y="167" x="160" id="tspan865" sodipodi:role="line" style="font-size:4px;stroke-width:0.332649">Symbolic</tspan></text> </g> <g inkscape:groupmode="layer" id="layer9" inkscape:label="icons" style="display:inline"> <g id="g634" transform="matrix(0.25,0,0,0.25,40.543894,192.6799)" style="stroke-width:4"> <g id="g1451" style="display:inline;enable-background:new" transform="matrix(4.0000016,0,0,4.0000016,-162.17559,-770.72007)"> <g id="g1502" style="display:inline;fill:#ffffff;fill-opacity:1;enable-background:new" transform="translate(192.6698,-1.5393458)"> <g id="g1538" style="fill:#ffffff"> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1428" width="18" height="3" x="86" y="257" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1430" width="15" height="3" x="-272" y="86" transform="rotate(-90)" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1432" width="15" height="3" x="-272" y="101" transform="rotate(-90)" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1434" width="18" height="3" x="86" y="267" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1444" width="23" height="3" x="83" y="251" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1446" width="23" height="3" x="83" y="236" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1448" width="19" height="3" x="83" y="243" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1450" width="8" height="3" x="-252" y="99" transform="rotate(-90)" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1452" width="15" height="3" x="-220.63724" y="148.72388" transform="rotate(-75)" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1436" width="10" height="3" x="69" y="257" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1438" width="15" height="3" x="-272" y="69" transform="rotate(-90)" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1440" width="13" height="3" x="-270" y="78" transform="rotate(-90)" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1442" width="10" height="3" x="69" y="267" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1454" width="11" height="3" x="69" y="251" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1456" width="7" height="3" x="71" y="246" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1458" width="15" height="3" x="67" y="241" /> <rect style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:26.4" id="rect1460" width="11" height="3" x="69" y="236" /> </g> </g> <path style="display:inline;fill:none;stroke:#ffffff;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" d="m 218.84879,246.00002 h -12.17896 v -28 h 11.80607 a 12.193933,12.193933 45 0 1 12.19393,12.19393 v 3.98502 a 11.821045,11.821045 135 0 1 -11.82104,11.82105 z" id="path1544" sodipodi:nodetypes="ccccc" inkscape:original-d="m 230.66983,246.00002 h -24 v -28 h 24 z" inkscape:path-effect="#path-effect1546" /> </g> </g> </g> <rect style="display:inline;fill:url(#linearGradient1871);fill-opacity:1;stroke:none;stroke-width:0.965307;-inkscape-stroke:none;enable-background:new;stop-color:#000000" id="rect4239" width="112" height="82" x="8" y="206" ry="8.9379416" rx="8.9379416" /> <rect style="display:inline;fill:#5e5c64;fill-opacity:1;stroke:none;stroke-width:0.977008;enable-background:new;stop-color:#000000" id="rect547" width="112" height="84" x="8" y="200" ry="8.3424225" rx="8.3424225" /> <path id="rect15675" style="display:inline;fill:#241f31;stroke-width:0.973833;enable-background:new;stop-color:#000000" d="m 107,268 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -42.000217,0 H 99 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 H 64.999783 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z M 51,268 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -22.000217,0 h 14.000434 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 H 14.999783 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z M 112.95947,245.07886 H 113 c 1.662,0 3,1.338 3,3 v 15.84228 c 0,1.662 -1.338,3 -3,3 h -0.0405 c -1.662,0 -3,-1.338 -3,-3 v -15.84228 c 0,-1.662 1.338,-3 3,-3 z M 107,240 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -8,14 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -70,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m 56,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m 64,-14 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -22.000217,0 h 14.000434 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 H 14.999783 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z M 99,225.94141 h 14.00043 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 H 99 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -70,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m 56,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 6 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -6 c 0,-1.662 1.338,-3 3,-3 z m 78,-9.94138 h 6 c 1.662,0 3,1.33799 3,2.99999 0,1.66199 -1.338,2.99998 -3,2.99998 h -6 c -1.662,0 -3,-1.33799 -3,-2.99998 0,-1.662 1.338,-2.99999 3,-2.99999 z m -14,0 h 6 c 1.662,0 3,1.33799 3,2.99999 C 102,220.66201 100.662,222 99,222 h -6 c -1.662,0 -3,-1.33799 -3,-2.99998 0,-1.662 1.338,-2.99999 3,-2.99999 z m -22,0 h 6 c 1.662,0 3,1.33799 3,2.99999 C 80,220.66201 78.662,222 77,222 h -6 c -1.662,0 -3,-1.33799 -3,-2.99998 0,-1.662 1.338,-2.99999 3,-2.99999 z m -14,0 h 6 c 1.662,0 3,1.33799 3,2.99999 C 66,220.66201 64.662,222 63,222 h -6 c -1.662,0 -3,-1.33799 -3,-2.99998 0,-1.662 1.338,-2.99999 3,-2.99999 z m -14,0 h 6 c 1.662,0 3,1.33799 3,2.99999 C 52,220.66201 50.662,222 49,222 h -6 c -1.662,0 -3,-1.33799 -3,-2.99998 0,-1.662 1.338,-2.99999 3,-2.99999 z m -14,0 h 6 c 1.662,0 3,1.33799 3,2.99999 C 38,220.66201 36.662,222 35,222 h -6 c -1.662,0 -3,-1.33799 -3,-2.99998 0,-1.662 1.338,-2.99999 3,-2.99999 z m -13.878174,0 h 5.756348 C 22.607666,216.00003 24,217.33802 24,219.00002 24,220.66201 22.607666,222 20.878174,222 H 15.121826 C 13.392334,222 12,220.66201 12,219.00002 c 0,-1.662 1.392334,-2.99999 3.121826,-2.99999 z" /> <path id="rect15677" style="display:inline;fill:#3d3846;stroke-width:0.932374;enable-background:new;stop-color:#000000" d="m 107,268 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -42.000217,0 H 99 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 H 64.999783 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z M 51,268 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -22.000217,0 h 14 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -14 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z M 112.95947,244.15771 H 113 c 1.662,0 3,1.338 3,3 V 263 c 0,1.662 -1.338,3 -3,3 h -0.0405 c -1.662,0 -3,-1.338 -3,-3 v -15.84229 c 0,-1.662 1.338,-3 3,-3 z M 107,240 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -8,14 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -70,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m 56,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m 64,-14 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -22.000217,0 h 14 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -14 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z M 99,225.94141 h 14 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 H 99 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -70,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m 56,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z m -14,0 h 6 c 1.662,0 3,1.338 3,3 v 5 c 0,1.662 -1.338,3 -3,3 h -6 c -1.662,0 -3,-1.338 -3,-3 v -5 c 0,-1.662 1.338,-3 3,-3 z M 107,216 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z m -14,0 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z m -22,0 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z m -14,0 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z m -14,0 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z m -14,0 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z m -14,0 h 6 c 1.662,0 3,1.115 3,2.5 0,1.385 -1.338,2.5 -3,2.5 h -6 c -1.662,0 -3,-1.115 -3,-2.5 0,-1.385 1.338,-2.5 3,-2.5 z" /> <rect style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#f9f06b;fill-opacity:1;stroke:none;stroke-width:0.946661;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;enable-background:new;stop-color:#000000" id="rect16234" width="4.0811229" height="4.0811229" x="99.918839" y="203.91891" rx="3.0459695" ry="3.0459695" /> <rect style="font-variation-settings:normal;display:inline;fill:#f9f06b;fill-opacity:1;stroke:none;stroke-width:0.927844;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new;stop-color:#000000" id="rect16334" width="4.0000029" height="4.0000029" x="107.99995" y="204.00003" rx="2.985425" ry="2.985425" /> <rect style="font-variation-settings:normal;display:inline;vector-effect:none;fill:url(#linearGradient2343);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.965307;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;enable-background:new;stop-color:#000000" id="rect1973" width="49.802158" height="43.418072" x="70.1978" y="240.58194" rx="7.351243" ry="6.47118" /> <path style="display:inline;fill:none;stroke:#deddda;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" d="m 96.966414,249.0229 0,-30.00394 a 8.0055165,8.0055165 45.019748 0 0 -7.999998,-8.00551 l -19.976977,-0.0138 a 7.9850154,7.9850154 134.98579 0 0 -7.990514,7.99448 l 0.01423,11.99997" id="path2725" sodipodi:nodetypes="cccc" inkscape:path-effect="#path-effect3404-1" inkscape:original-d="m 96.966414,249.0229 v -38.00394 l -35.976973,-0.0248 0.02371,19.99996" /> <rect style="font-variation-settings:'wght' 800;display:inline;fill:#3d3846;fill-opacity:1;fill-rule:evenodd;stroke:#deddda;stroke-width:2.03227;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;enable-background:new;stop-color:#000000" id="rect2113" width="47.955978" height="41.721436" x="71.111305" y="237.26244" rx="7.0787287" ry="6.218308" /> <rect style="font-variation-settings:'wght' 800;display:inline;fill:#3d3846;fill-opacity:1;fill-rule:evenodd;stroke:#deddda;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;enable-background:new;stop-color:#000000" id="rect2416" width="11.180351" height="10.152573" x="54.409805" y="225.34746" rx="2.3851774" ry="2.3851774" /> <g aria-label="č" transform="matrix(1.6008942,0,0,1.6035493,86.283312,270.81006)" id="text3532" style="font-weight:800;font-size:18.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Ultra-Bold';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect43121);display:inline;fill:#ffffff;stroke-width:2.49653;enable-background:new;stop-color:#000000"> <path d="m 5.4462146,-0.50516096 c 3.1304443,0 5.0724794,-1.81884614 5.1666834,-4.57247744 H 7.3012927 c -0.1304351,1.181163 -0.8405823,1.8260924 -1.8115996,1.8260924 -1.2463805,0 -2.0579771,-1.0507279 -2.0579771,-3.0289946 0,-1.963774 0.8188429,-3.0145017 2.0579771,-3.0145017 1.0144957,0 1.673918,0.6884077 1.8115996,1.8260922 h 3.3116053 c -0.07972,-2.7391389 -2.0797175,-4.5217509 -5.1739297,-4.5217509 -3.5000105,0 -5.61595893,2.3333387 -5.61595893,5.7463923 0,3.3985609 2.10145563,5.73914774 5.62320523,5.73914774 z M 4.0186741,-16.519699 H 1.0476508 v 0.0942 l 3.1376905,3.246386 h 2.5434859 l 3.1304449,-3.246386 v -0.0942 H 6.8954943 l -1.4420332,1.681163 z" id="path3584" style="fill:#ffffff;stroke-width:2.72913" /> </g> <g inkscape:groupmode="layer" id="layer3" inkscape:label="grid" style="display:none" sodipodi:insensitive="true"> <circle cx="64.000031" cy="236" r="59.504131" id="circle2892" style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99, 0.99;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" /> <rect ry="7.9292889" rx="8.701004" y="180.49496" x="20.495007" height="111.01005" width="87.009987" id="rect2894" style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99, 0.99;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" /> <rect ry="7.9238095" rx="7.9238095" y="184.49524" x="12.495266" height="103.00952" width="103.00952" id="rect2896" style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99, 0.99;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" /> <rect ry="8.701005" rx="7.9292889" y="200.49496" x="8.4950066" height="87.010048" width="111.01004" id="rect2898" style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99, 0.99;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" /> <path inkscape:connector-curvature="0" id="path2900" d="M 2.6203015e-5,288.99999 H 128.00003" style="display:inline;fill:none;stroke:#62a0ea;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" /> </g> <path id="path25976" d="M 162.5 174 C 161.13281 174 160 175.13281 160 176.5 L 160 183.5 C 160 184.86719 161.13281 186 162.5 186 L 168 186 L 168 184 L 165.5 184 C 165.22266 184 165 183.77734 165 183.5 L 165 182.5 C 165 182.22266 165.22266 182 165.5 182 L 168 182 L 168 180.5 C 168 180.77734 167.77734 181 167.5 181 L 166.5 181 C 166.22266 181 166 180.77734 166 180.5 L 166 179.5 C 166 179.22266 166.22266 179 166.5 179 L 167.5 179 C 167.77734 179 168 179.22266 168 179.5 L 168 180 C 168 179.05788 168.61571 178.26421 169.46875 178 L 168.5 178 C 168.22266 178 168 177.77734 168 177.5 L 168 176.5 C 168 176.22266 168.22266 176 168.5 176 L 169.5 176 C 169.77734 176 170 176.22266 170 176.5 L 170 177.5 C 170 177.69255 169.89086 177.85583 169.73242 177.93945 C 169.84971 177.91921 169.9705 177.90625 170.09375 177.90625 L 171.21094 177.90625 C 171.08383 177.81584 171 177.66881 171 177.5 L 171 176.5 C 171 176.22266 171.22266 176 171.5 176 L 172.5 176 C 172.77734 176 173 176.22266 173 176.5 L 173 177.5 C 173 177.66881 172.91617 177.81584 172.78906 177.90625 L 176 177.90625 L 176 176.5 C 176 175.13281 174.86719 174 173.5 174 L 162.5 174 z M 162.5 176 L 163.5 176 C 163.77734 176 164 176.22266 164 176.5 L 164 177.5 C 164 177.77734 163.77734 178 163.5 178 L 162.5 178 C 162.22266 178 162 177.77734 162 177.5 L 162 176.5 C 162 176.25781 162.17187 176.05469 162.39844 176.01172 C 162.42964 176.00372 162.46484 176 162.5 176 z M 165.5 176 L 166.5 176 C 166.77734 176 167 176.22266 167 176.5 L 167 177.5 C 167 177.77734 166.77734 178 166.5 178 L 165.5 178 C 165.22266 178 165 177.77734 165 177.5 L 165 176.5 C 165 176.22266 165.22266 176 165.5 176 z M 163.5 179 L 164.5 179 C 164.77734 179 165 179.22266 165 179.5 L 165 180.5 C 165 180.77734 164.77734 181 164.5 181 L 163.5 181 C 163.22266 181 163 180.77734 163 180.5 L 163 179.5 C 163 179.22266 163.22266 179 163.5 179 z M 162.5 182 L 163.5 182 C 163.77734 182 164 182.22266 164 182.5 L 164 183.5 C 164 183.77734 163.77734 184 163.5 184 L 162.5 184 C 162.22266 184 162 183.77734 162 183.5 L 162 182.5 C 162 182.22266 162.22266 182 162.5 182 z " /> <g aria-label="č" transform="matrix(0.55607615,0,0,0.55699842,170.09842,188.28137)" id="g22833" style="font-weight:800;font-size:18.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Ultra-Bold';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect43121);display:inline;fill:#2e3436;fill-opacity:1;stroke-width:7.18729;enable-background:new;stop-color:#000000"> <path d="m 5.4462146,-0.50516096 c 3.1304443,0 5.0724794,-1.81884614 5.1666834,-4.57247744 H 7.3012927 c -0.1304351,1.181163 -0.8405823,1.8260924 -1.8115996,1.8260924 -1.2463805,0 -2.0579771,-1.0507279 -2.0579771,-3.0289946 0,-1.963774 0.8188429,-3.0145017 2.0579771,-3.0145017 1.0144957,0 1.673918,0.6884077 1.8115996,1.8260922 h 3.3116053 c -0.07972,-2.7391389 -2.0797175,-4.5217509 -5.1739297,-4.5217509 -3.5000105,0 -5.61595893,2.3333387 -5.61595893,5.7463923 0,3.3985609 2.10145563,5.73914774 5.62320523,5.73914774 z M 4.0186741,-16.519699 H 1.0476508 v 0.0942 l 3.1376905,3.246386 h 2.5434859 l 3.1304449,-3.246386 v -0.0942 H 6.8954943 l -1.4420332,1.681163 z" id="path22831" style="fill:#000000;fill-opacity:1;stroke-width:7.85691" /> </g> </g> </svg> 07070100000010000081A400000000000000000000000166E7F90D00000123000000000000000000000000000000000000001C00000000tecla-47.0/data/meson.builddesktop_filename = 'org.gnome.Tecla.desktop' desktop_file = i18n.merge_file( input: desktop_filename + '.in', output: desktop_filename, po_dir: '../po', install: true, install_dir: get_option('prefix') / get_option('datadir') / 'applications', type: 'desktop' ) subdir('icons') 07070100000011000081A400000000000000000000000166E7F90D000000D2000000000000000000000000000000000000002B00000000tecla-47.0/data/org.gnome.Tecla.desktop.in[Desktop Entry] Name=Tecla Comment=Preview keyboard layouts Icon=org.gnome.Tecla Exec=tecla Terminal=false Type=Application StartupNotify=true NoDisplay=true Categories=GNOME;GTK;Core;System; OnlyShowIn=GNOME; 07070100000012000081A400000000000000000000000166E7F90D000005A2000000000000000000000000000000000000001700000000tecla-47.0/meson.buildproject('tecla', 'c', version: '47.0', meson_version: '>=0.54', default_options: [ 'c_std=c99', 'warning_level=2', ] ) cc = meson.get_compiler('c') cc_warning_flags = [ '-Wno-unused-parameter', ] add_project_arguments( cc.get_supported_arguments(cc_warning_flags), language: 'c' ) config_h = configuration_data() config_defines = [ # package ['PACKAGE', meson.project_name()], ['PACKAGE_VERSION', meson.project_version()], ['VERSION', meson.project_version()], ['GETTEXT_PACKAGE', meson.project_name()], ['LOCALEDIR', get_option('prefix') / get_option('localedir')], ] foreach define: config_defines config_h.set_quoted(define[0], define[1]) endforeach configure_file( output: 'config.h', configuration: config_h ) config_inc = include_directories('.') gnome = import('gnome') i18n = import('i18n') pkg = import('pkgconfig') gtk_dep = dependency('gtk4') gtk_wayland_dep = dependency('gtk4-wayland', required: false) wayland_dep = dependency('wayland-client', required: false) adw_dep = dependency('libadwaita-1', version: '>=1.4') xkbcommon_dep = dependency('xkbcommon') libm_dep = cc.find_library('m') subdir('data') subdir('src') subdir('po') pkg.generate( name: 'tecla', description: 'Keyboard layout previewer', dataonly: true, variables: [ 'prefix=' + get_option('prefix'), 'app=${prefix}' / get_option('bindir') / 'tecla', ] ) 07070100000013000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000000E00000000tecla-47.0/po07070100000014000081A400000000000000000000000166E7F90D0000009E000000000000000000000000000000000000001600000000tecla-47.0/po/LINGUASar be bg ca cs da de el en_GB eo eu es fa fi fr fur gl he hi hu id ie it ka kab ko lt lv ne nl oc pa pl pt pt_BR ro ru sk sl sr sr@latin sv tr uk zh_CN zh_TW 07070100000015000081A400000000000000000000000166E7F90D0000009F000000000000000000000000000000000000001A00000000tecla-47.0/po/POTFILES.in# List of source files containing translatable strings. # Please keep this file sorted alphabetically. data/org.gnome.Tecla.desktop.in src/tecla-application.c 07070100000016000081A400000000000000000000000166E7F90D00000067000000000000000000000000000000000000001C00000000tecla-47.0/po/POTFILES.skip# List of source files that should *not* be translated. # Please keep this file sorted alphabetically. 07070100000017000081A400000000000000000000000166E7F90D0000049C000000000000000000000000000000000000001400000000tecla-47.0/po/ar.po# Arabic translation for tecla. # Copyright (C) 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Ali Galal <AleuqabAli@gmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-03-22 22:15+0000\n" "PO-Revision-Date: 2024-03-25 01:01+0200\n" "Last-Translator: Ali Galal <AleuqabAli@gmail.com>\n" "Language-Team: Arabic\n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "X-Generator: Gtranslator 46.0\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "تِكلا" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "عاين تخطيطات لوحة المفاتيح" #: src/tecla-application.c:74 msgid "Display version number" msgstr "اعرض رقم الإصدار" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "تخطيط لوحة المفاتيح" 07070100000018000081A400000000000000000000000166E7F90D000005C2000000000000000000000000000000000000001400000000tecla-47.0/po/be.po# Belarusian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Yuras Shumovich <shumovichy@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-05 08:24+0300\n" "Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n" "Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Папярэдні прагляд раскладак клавіятуры" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Прычапіць да бацькоўскага акна" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Дэскрыптар акна" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Паказаць нумар версіі" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Раскладка клавіятуры" 07070100000019000081A400000000000000000000000166E7F90D000005B0000000000000000000000000000000000000001400000000tecla-47.0/po/bg.po# Bulgarian translation of tecla po-file. # Copyright (C) 2024 tecla's twlvnn kraftwerk <kraft_werk@tutanota.com>. # This file is distributed under the same license as the tecla package. # twlvnn kraftwerk <kraft_werk@tutanota.com>, 2024. # # Resubmit msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 21:00+0000\n" "PO-Revision-Date: 2024-09-03 23:26+0200\n" "Last-Translator: twlvnn kraftwerk <kraft_werk@tutanota.com>\n" "Language-Team: Bulgarian <dict@ludost.net>\n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 46.1\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Преглед на подредбите на клавиатурата" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Закачане към родителски прозорец" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Указател към прозорец" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Показване на версията" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Подредба на клавиатурата" 0707010000001A000081A400000000000000000000000166E7F90D000004A2000000000000000000000000000000000000001400000000tecla-47.0/po/ca.po# Catalan translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # pocsenderi <pocsenderi@protonmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-04 21:43+0200\n" "Last-Translator: \n" "Language-Team: Catalan <gnome@llistes.softcatala.org>\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Vista prèvia de les disposicions de teclat" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Adjunta a la finestra pare" #: src/tecla-application.c:79 msgid "Window handle" msgstr "" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Mostra el número de versió" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Disposició del teclat" 0707010000001B000081A400000000000000000000000166E7F90D0000054C000000000000000000000000000000000000001400000000tecla-47.0/po/cs.po# Czech translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Daniel Rusek <mail@asciiwolf.com>, 2023. # Vojtěch Perník <translations@pervoj.cz>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-06 13:18+0000\n" "PO-Revision-Date: 2024-09-07 17:37+0200\n" "Last-Translator: Vojtěch Perník <translations@pervoj.cz>\n" "Language-Team: Czech <gnome-cs-list@gnome.org>\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" "X-Generator: Gtranslator 46.1\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Zobrazte náhled rozložení klávesnice" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Připojit k nadřazenému oknu" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Identifikátor okna" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Zobrazit číslo verze" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Rozložení klávesnice" 0707010000001C000081A400000000000000000000000166E7F90D000004ED000000000000000000000000000000000000001400000000tecla-47.0/po/da.po# Danish translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Alan Mortensen <alanmortensen.am@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-08 15:33+0000\n" "PO-Revision-Date: 2024-09-11 18:36+0200\n" "Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Forhåndsvis tastaturlayout" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Vedhæft til et overordnet vindue" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Vindueshåndtag" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Vis versionsnummer" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Tastaturlayout" 0707010000001D000081A400000000000000000000000166E7F90D0000053F000000000000000000000000000000000000001400000000tecla-47.0/po/de.po# German translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Jürgen Benvenuti <gastornis@posteo.org>, 2023, 2024. # Tim Sabsch <tim@sabsch.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-04 19:32+0200\n" "Last-Translator: Tim Sabsch <tim@sabsch.com>\n" "Language-Team: German <gnome-de@gnome.org>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Vorschau der Tastaturbelegungen" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "An ein übergeordnetes Fenster anhängen" # Bin offen für Alternativen zu "Handle" - ts #: src/tecla-application.c:79 msgid "Window handle" msgstr "Fenster-Handle" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Versionsnummer anzeigen" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Tastaturbelegung" 0707010000001E000081A400000000000000000000000166E7F90D0000057E000000000000000000000000000000000000001400000000tecla-47.0/po/el.po# Greek translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Efstathios Iosifidis <eiosifidis@gnome.org>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-03 23:08+0300\n" "Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n" "Language-Team: Greek <gnome-el-list@gnome.org>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.4\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Προεπισκόπηση διατάξεων πληκτρολογίου" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Επισύναψη σε γονικό παράθυρο" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Χειριστήριο παραθύρου" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Εμφάνιση αριθμού έκδοσης" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Διάταξη πληκτρολογίου" 0707010000001F000081A400000000000000000000000166E7F90D000004DF000000000000000000000000000000000000001700000000tecla-47.0/po/en_GB.po# British English translation for tecla. # Copyright (C) 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Andi Chandler <andi@gowling.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla gnome-45\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-04 12:31+0100\n" "Last-Translator: Andi Chandler <andi@gowling.com>\n" "Language-Team: British English <en_GB@li.org>\n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Preview keyboard layouts" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Attach to a parent window" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Window handle" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Display version number" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Keyboard Layout" 07070100000020000081A400000000000000000000000166E7F90D000003D9000000000000000000000000000000000000001400000000tecla-47.0/po/eo.po# Esperanto translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2023-09-11 16:24+0000\n" "PO-Revision-Date: 2023-09-11 16:24+0000\n" "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" "Language-Team: Esperanto <gnome-eo-list@gnome.org>\n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Antaŭrigardu klavarajn aranĝojn" #: src/tecla-application.c:136 msgid "Keyboard Layout" msgstr "Klavara aranĝo" 07070100000021000081A400000000000000000000000166E7F90D000005A0000000000000000000000000000000000000001400000000tecla-47.0/po/es.po# Spanish translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # Daniel Mustieles <daniel.mustieles@gmail.com>, 2023-2024. # Daniel Mustieles García <daniel.mustieles@gmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-05 13:59+0200\n" "Last-Translator: Daniel Mustieles García <daniel.mustieles@gmail.com>\n" "Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 46.1\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Vista previa de las ditribuciones del teclado" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Acoplar a la ventana padre" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Manejador de la ventana" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Mostrar el número de versión" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Distribución del teclado" 07070100000022000081A400000000000000000000000166E7F90D000004B2000000000000000000000000000000000000001400000000tecla-47.0/po/eu.po# Basque translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2023, 2024. # msgid "" msgstr "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-08 18:04+0000\n" "Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n" "Language-Team: Basque <librezale@librezale.eus>\n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tekla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Aurreikusi teklatuaren diseinuak" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Erantsi leiho guraso bati" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Leihoen maneiua" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Erakutsi bertsio-zenbakia" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Teklatuaren diseinua" 07070100000023000081A400000000000000000000000166E7F90D00000502000000000000000000000000000000000000001400000000tecla-47.0/po/fa.po# Persian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Danial Behzadi <dani.behzi@ubuntu.com>, 2023-2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-05 16:11+0330\n" "Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n" "Language-Team: Persian <fa@li.org>\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.2.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "تکلا" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "پیشنمایش چینشهای صفحهکلید" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "پیوست به پنجرهای والد" #: src/tecla-application.c:79 msgid "Window handle" msgstr "دستگیرهٔ پنجره" #: src/tecla-application.c:80 msgid "Display version number" msgstr "نمایش شمارهٔ نگارش" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "چینش صفحهکلید" 07070100000024000081A400000000000000000000000166E7F90D00000451000000000000000000000000000000000000001400000000tecla-47.0/po/fi.po# Finnish translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Jiri Grönroos <jiri.gronroos@iki.fi>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2024-01-13 12:18+0000\n" "PO-Revision-Date: 2024-02-22 19:50+0200\n" "Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n" "Language-Team: Finnish <lokalisointi-lista@googlegroups.com>\n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Esikatsele näppäimistöasetteluja" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Näytä versionumero" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Näppäimistön asettelu" 07070100000025000081A400000000000000000000000166E7F90D000005B1000000000000000000000000000000000000001400000000tecla-47.0/po/fr.po# French translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Guillaume Bernard <associations@guillaume-bernard.fr>, 2023. # Irénée THIRION <irenee.thirion@e.email>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-08 15:33+0000\n" "PO-Revision-Date: 2024-09-13 10:29+0200\n" "Last-Translator: Irénée Thirion <irenee.thirion@e.email>\n" "Language-Team: French <gnomefr@traduc.org>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.5\n" "X-DL-Lang: fr\n" "X-DL-Module: tecla\n" "X-DL-Branch: main\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Aperçu des agencements de clavier" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Attacher à une fenêtre parente" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Poignée de la fenêtre" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Afficher le numéro de version" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Agencement du clavier" 07070100000026000081A400000000000000000000000166E7F90D00000403000000000000000000000000000000000000001500000000tecla-47.0/po/fur.po# Friulian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Fabio Tomat <f.t.public@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2024-01-08 21:44+0000\n" "PO-Revision-Date: 2024-01-09 12:17+0100\n" "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" "Language-Team: Friulian <fur@li.org>\n" "Language: fur\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Anteprime disposizions tastieris" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Visualize numar di version" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Disposizion de tastiere" 07070100000027000081A400000000000000000000000166E7F90D000004CB000000000000000000000000000000000000001400000000tecla-47.0/po/gl.po# Galician translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Fran Dieguez <frandieguez@gnome.org>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-03 23:00+0200\n" "Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n" "Language-Team: Galician <gnome-gl-list@gnome.org>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Previsualize disposicións de teclado" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Ancorar á xanela pai" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Manexador da xanela" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Mostrar o número de versión" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Disposicións de teclado" 07070100000028000081A400000000000000000000000166E7F90D0000051E000000000000000000000000000000000000001400000000tecla-47.0/po/he.po# Hebrew translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Yosef Or Boczko <yoseforb@gmail.com>, 2023-2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-05 15:58+0300\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Language-Team: Hebrew\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " "2 : 3);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "תצוגה מקדימה לפריסת מקלדת" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "הצמדה לחלון ההורה" #: src/tecla-application.c:79 msgid "Window handle" msgstr "מטפל בחלון" #: src/tecla-application.c:80 msgid "Display version number" msgstr "הצגת מספר הגרסה" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "פריסת מקלדת" 07070100000029000081A400000000000000000000000166E7F90D000004D3000000000000000000000000000000000000001400000000tecla-47.0/po/hi.po# Hindi translation for tecla. # Copyright (C) 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Scrambled777 <weblate.scrambled777@simplelogin.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-04-10 07:23+0000\n" "PO-Revision-Date: 2024-04-17 17:01+0530\n" "Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n" "Language-Team: Hindi\n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.0\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "कीबोर्ड अभिन्यास का पूर्वावलोकन करें" #: src/tecla-application.c:74 msgid "Display version number" msgstr "संस्करण संख्या प्रदर्शित करें" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "कीबोर्ड अभिन्यास" 0707010000002A000081A400000000000000000000000166E7F90D00000514000000000000000000000000000000000000001400000000tecla-47.0/po/hu.po# Hungarian translation for tecla. # Copyright (C) 2023, 2024 Free Software Foundation, Inc. # This file is distributed under the same license as the tecla package. # # Balázs Úr <ur.balazs at fsf dot hu>, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-08 09:06+0200\n" "Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n" "Language-Team: Hungarian <openscope at fsf dot hu>\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 23.08.4\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tekla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Billentyűzetkiosztások előnézete" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Csatolás a szülő ablakhoz" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Ablakfogantyú" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Verziószám megjelenítése" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Billentyűzetkiosztás" 0707010000002B000081A400000000000000000000000166E7F90D000004FD000000000000000000000000000000000000001400000000tecla-47.0/po/id.po# Indonesian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2023, 2024. # Andika Triwidada <andika@gmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-08 15:33+0000\n" "PO-Revision-Date: 2024-09-09 14:45+0700\n" "Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Pratinjau tata letak papan tik" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Cantolkan ke suatu jendela induk" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Handle jendela" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Tampilkan nomor versi" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Tata Letak Papan Tik" 0707010000002C000081A400000000000000000000000166E7F90D00000416000000000000000000000000000000000000001400000000tecla-47.0/po/ie.po# Interlingue translation for tecla. # Copyright (C) 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Olga Smirnova <mistresssilvara@hotmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-04-02 12:13+0000\n" "PO-Revision-Date: 2024-04-10 14:22+0700\n" "Last-Translator: OIS <mistresssilvara@hotmail.com>\n" "Language-Team: Interlingue <ie@li.org>\n" "Language: ie\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Previder arangeamentes de tastatura" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Monstrar li numeró del version" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Arangeament de tastatura" 0707010000002D000081A400000000000000000000000166E7F90D000003DE000000000000000000000000000000000000001400000000tecla-47.0/po/it.po# Italian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Davide Ferracin <davide.ferracin@protonmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2023-08-30 12:04+0000\n" "PO-Revision-Date: 2023-08-30 22:33+0200\n" "Last-Translator: Davide Ferracin <davide.ferracin@protonmail.com>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Anteprime delle disposizioni di tastiera" #: src/tecla-application.c:135 msgid "Keyboard Layout" msgstr "Disposizione della tastiera" 0707010000002E000081A400000000000000000000000166E7F90D000005A1000000000000000000000000000000000000001400000000tecla-47.0/po/ka.po# Georgian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Ekaterine Papava <papava.e@gtu.ge>, 2023-2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-08 04:52+0200\n" "Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n" "Language-Team: Georgian <ka@li.org>\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.3.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "კლავიატურის განლაგებების გადახედვა" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "მიმაგრება მშობელ ფანჯარაზე" #: src/tecla-application.c:79 msgid "Window handle" msgstr "ფანჯრის სახელური" #: src/tecla-application.c:80 msgid "Display version number" msgstr "ვერსიის ინფორმაციის ჩვენება" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "კლავიატურის განლაგება" 0707010000002F000081A400000000000000000000000166E7F90D000003CD000000000000000000000000000000000000001500000000tecla-47.0/po/kab.po# Kabyle translation for tecla. # Copyright (C) 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Rachida SACI <rgebbid@gmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-03-17 01:11+0000\n" "PO-Revision-Date: 2024-03-21 22:14+0100\n" "Last-Translator: sa\n" "Language-Team: Kabyle <kab@li.org>\n" "Language: kab\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Taskant n tneɣrufin n unasiw" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Sken amḍan n lqem" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Taneɣruft n unasiw" 07070100000030000081A400000000000000000000000166E7F90D00000474000000000000000000000000000000000000001400000000tecla-47.0/po/ko.po# Korean translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # DaeHyun Sung <sungdh86+git@gmail.com>, 2023. # Seong-ho Cho <shcho@gnome.org>, 2024. (contributed temporarily) # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2024-01-13 12:18+0000\n" "PO-Revision-Date: 2024-03-15 23:45+0900\n" "Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n" "Language-Team: Korean <gnome-kr@googlegroups.com>\n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "테클라" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "키보드 배치 미리보기" #: src/tecla-application.c:74 msgid "Display version number" msgstr "버전 번호 표시" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "키보드 배치" 07070100000031000081A400000000000000000000000166E7F90D0000051F000000000000000000000000000000000000001400000000tecla-47.0/po/lt.po# Lithuanian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Aurimas Černius <aurisc4@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-08 15:33+0000\n" "PO-Revision-Date: 2024-09-08 21:59+0300\n" "Last-Translator: \n" "Language-Team: Lithuanian <gnome-lt@lists.akl.lt>\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.4\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Peržiūrėti klaviatūrų išdėstymus" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Prikabinti tėvinį langą" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Lango deskriptorius" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Parodyti versijos numerį" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Klaviatūros išdėstymas" 07070100000032000081A400000000000000000000000166E7F90D0000051C000000000000000000000000000000000000001400000000tecla-47.0/po/lv.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # SPDX-FileCopyrightText: 2024 Rūdolfs Mazurs <rudolfs.mazurs@gmail.com> msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-08 15:33+0000\n" "PO-Revision-Date: 2024-09-11 23:19+0300\n" "Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n" "Language-Team: Latvian <lata-l10n@googlegroups.com>\n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :" " 2);\n" "X-Generator: Lokalize 23.08.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Priekšskatīt tastatūras izkārtojumus" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Pievienot vecāka logam" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Loga turis" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Rādīt versijas numuru" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Tastatūras izkārtojums" 07070100000033000081A400000000000000000000000166E7F90D00000039000000000000000000000000000000000000001A00000000tecla-47.0/po/meson.buildi18n.gettext( meson.project_name(), preset: 'glib' ) 07070100000034000081A400000000000000000000000166E7F90D000004C2000000000000000000000000000000000000001400000000tecla-47.0/po/ne.po# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Gnome Nepali Translation Project\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-05-07 17:11+0000\n" "PO-Revision-Date: 2024-05-28 22:24+0545\n" "Last-Translator: Pawan Chitrakar <chautari@gmail.com>\n" "Language-Team: Nepali Translation Team <chautari@gmail.com>\n" "Language: ne\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "टेक्ला" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "कुञ्जीपाटी रूपरेखा पूर्वावलोकन" #: src/tecla-application.c:74 msgid "Display version number" msgstr "संस्करण प्रदर्शन गर्नुहोस्" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "कुञ्जीपाटी रूपरेखा" 07070100000035000081A400000000000000000000000166E7F90D0000044D000000000000000000000000000000000000001400000000tecla-47.0/po/nl.po# Dutch translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Nathan Follens <nfollens@gnome.org>, 2023-2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2024-01-13 12:18+0000\n" "PO-Revision-Date: 2024-02-18 17:04+0100\n" "Last-Translator: Nathan Follens <nfollens@gnome.org>\n" "Language-Team: GNOME-NL https://matrix.to/#/#nl:gnome.org\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Voorbeelden van toetsenbordindelingen tonen" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Versienummer weergeven" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Toetsenbordindeling" 07070100000036000081A400000000000000000000000166E7F90D000004BA000000000000000000000000000000000000001400000000tecla-47.0/po/oc.po# Occitan translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Quentin PAGÈS <pages_quentin@hotmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-06 15:17+0200\n" "Last-Translator: Quentin PAGÈS\n" "Language-Team: Occitan <totenoc@gmail.com>\n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Apercebut d’agençament de clavièr" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Estacar a la fenèstra parent" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Gestion fenèstra" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Afichar lo numèro de la version" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Agençament de clavièr" 07070100000037000081A400000000000000000000000166E7F90D00000433000000000000000000000000000000000000001400000000tecla-47.0/po/pa.po# Punjabi translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # # Amn Alam <amanpreet.alam@gmail.com>, 2023. # A S Alam <aalam@satluj.org>, 2023. msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2023-08-22 11:30+0000\n" "PO-Revision-Date: 2023-08-22 16:34-0700\n" "Last-Translator: A S Alam <aalam@satluj.org>\n" "Language-Team: Punjabi <punjab-translation@googlegroups.com>\n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 23.04.3\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "ਟੈਕਲਾ" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "ਕੀਬੋਰਡ ਖਾਕਿਆਂ ਦੀ ਝਲਕ" #: src/tecla-application.c:135 msgid "Keyboard Layout" msgstr "ਕੀ-ਬੋਰਡ ਲੇਆਉਟ" 07070100000038000081A400000000000000000000000166E7F90D0000053D000000000000000000000000000000000000001400000000tecla-47.0/po/pl.po# Polish translation for tecla. # Copyright © 2023-2024 the tecla authors. # This file is distributed under the same license as the tecla package. # Piotr Drąg <piotrdrag@gmail.com>, 2023-2024. # Aviary.pl <community-poland@mozilla.org>, 2023-2024. # msgid "" msgstr "" "Project-Id-Version: tecla\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-08 15:33+0000\n" "PO-Revision-Date: 2024-09-08 17:35+0200\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Language-Team: Polish <community-poland@mozilla.org>\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Podgląd układów klawiatury" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Dołącza do okna nadrzędnego" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Identyfikator okna" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Wyświetla numer wersji" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Układ klawiatury" 07070100000039000081A400000000000000000000000166E7F90D00000537000000000000000000000000000000000000001400000000tecla-47.0/po/pt.po# Portuguese translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Hugo Carvalho <hugokarvalho@hotmail.com>, 2023, 2024. # Luís Da Costa <luisdc@libretrend.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-07 12:30+0100\n" "Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n" "Language-Team: Portuguese <pt@li.org>\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.5\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Pré-visualizar as disposições do teclado" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Anexar a uma janela principal" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Manípulo de janela" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Mostrar número da versão" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Disposição do teclado" 0707010000003A000081A400000000000000000000000166E7F90D00000558000000000000000000000000000000000000001700000000tecla-47.0/po/pt_BR.po# Brazilian Portuguese translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Rafael Fontenelle <rafaelff@gnome.org>, 2023-2024. # Juliano de Souza Camargo <julianosc@pm.me>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-05 10:46-0300\n" "Last-Translator: Juliano de Souza Camargo <julianosc@pm.me>\n" "Language-Team: Brazilian Portuguese <https://br.gnome.org/traducao>>\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.1\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Pré-visualize layouts de teclado" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Anexar a uma janela principal" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Gestor de janela" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Exibe o número da versão" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Layout de teclado" 0707010000003B000081A400000000000000000000000166E7F90D000004B5000000000000000000000000000000000000001400000000tecla-47.0/po/ro.po# Romanian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # kottiberyu <tibetiumoise@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2024-01-08 21:44+0000\n" "PO-Revision-Date: 2024-01-10 10:55+0200\n" "Last-Translator: Florentina Mușat <florentina [dot] musat [dot] 28 [at] " "gmail [dot] com>\n" "Language-Team: Romanian <gnomero-list@lists.sourceforge.net>\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);;\n" "X-Generator: Poedit 3.4.1\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Previzualizează aranjamente de tastatură" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Afișează numărul versiunii" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Aranjament de tastatură" 0707010000003C000081A400000000000000000000000166E7F90D00000593000000000000000000000000000000000000001400000000tecla-47.0/po/ru.po# Russian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Artur S0 <arturios05@bk.ru>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-03 23:33+0300\n" "Last-Translator: Artur So <arturios2005@mail.ru>\n" "Language-Team: Russian <ru@li.org>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.4\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Предпросмотр раскладок клавиатуры" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Прикрепить к родительскому окну" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Дескриптор окна" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Отображать номер версии" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Раскладка клавиатуры" 0707010000003D000081A400000000000000000000000166E7F90D00000460000000000000000000000000000000000000001400000000tecla-47.0/po/sk.po# Slovak translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Dušan Kazik <prescott66@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2024-01-13 12:18+0000\n" "PO-Revision-Date: 2024-08-17 11:35+0200\n" "Last-Translator: Dušan Kazik <prescott66@gmail.com>\n" "Language-Team: Slovak <gnome-sk-list@gnome.org>\n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Generator: Poedit 3.3.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Zobrazuje náhľady rozložení klávesníc" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Zobrazuje číslo verzie" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Rozloženie klávesnice" 0707010000003E000081A400000000000000000000000166E7F90D00000590000000000000000000000000000000000000001400000000tecla-47.0/po/sl.po# Slovenian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # # Martin <miles@filmsi.net>, 2023. # Matej Urbančič <mateju@src.gnome.org>, 2023–. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-04 16:05+0200\n" "Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups." "com>\n" "Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" "X-Poedit-SourceCharset: utf-8\n" "X-Generator: Poedit 2.2.1\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tekla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Pregled postavitev tipkovnice" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Pripni nadrejenemu oknu" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Ročica okna" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Prikaži številko različice" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Postavitev tipkovnice" 0707010000003F000081A400000000000000000000000166E7F90D000004FB000000000000000000000000000000000000001400000000tecla-47.0/po/sr.po# Serbian translation for tecla. # Copyright © 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Милош Поповић <gpopac@gmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-03-22 22:15+0000\n" "PO-Revision-Date: 2024-03-30 00:16+0100\n" "Last-Translator: Милош Поповић <gpopac@gmail.com>\n" "Language-Team: Serbian <Serbian <gnome-sr@googlegroups.com>>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "X-Project-Style: gnome\n" "X-Generator: Gtranslator 45.3\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Текла" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Преглед распореда тастатуре" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Прикажи број издања" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Распоред тастатуре" 07070100000040000081A400000000000000000000000166E7F90D000004A9000000000000000000000000000000000000001A00000000tecla-47.0/po/sr@latin.po# Serbian translation for tecla. # Copyright © 2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Miloš Popović <gpopac@gmail.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-03-22 22:15+0000\n" "PO-Revision-Date: 2024-03-30 00:16+0100\n" "Last-Translator: Miloš Popović <gpopac@gmail.com>\n" "Language-Team: Serbian <Serbian <gnome-sr@googlegroups.com>>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "X-Project-Style: gnome\n" "X-Generator: Gtranslator 45.3\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tekla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Pregled rasporeda tastature" #: src/tecla-application.c:74 msgid "Display version number" msgstr "Prikaži broj izdanja" #: src/tecla-application.c:155 msgid "Keyboard Layout" msgstr "Raspored tastature" 07070100000041000081A400000000000000000000000166E7F90D0000050D000000000000000000000000000000000000001400000000tecla-47.0/po/sv.po# Swedish translation for tecla. # Copyright © 2023-2024 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Anders Jonsson <anders.jonsson@norsjovallen.se>, 2023, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-06 10:55+0200\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.4\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Förhandsvisa tangentbordslayouter" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Fäst vid ett överordnat fönster" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Fönsterhandtag" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Visa versionsnummer" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Tangentbordslayout" 07070100000042000081A400000000000000000000000166E7F90D0000050B000000000000000000000000000000000000001400000000tecla-47.0/po/tr.po# Turkish translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # # Sabri Ünal <libreajans@gmail.com>, 2023. # Emin Tufan Çetin <etcetin@gmail.com> 2024. # # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-05 08:00+0300\n" "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n" "Language-Team: Turkish <takim@gnome.org.tr>\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Klavye düzenlerini ön izle" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Ebeveyn pencereye bağla" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Pencere tutamacı" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Sürüm numarasını göster" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Klavye Düzeni" 07070100000043000081A400000000000000000000000166E7F90D000005D0000000000000000000000000000000000000001400000000tecla-47.0/po/uk.po# Ukrainian translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # # Yuri Chornoivan <yurchor@ukr.net>, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-04 19:15+0300\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 23.04.3\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "Перегляд розкладки клавіатури" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "Приєднати до батьківського вікна" #: src/tecla-application.c:79 msgid "Window handle" msgstr "Елемент керування вікном" #: src/tecla-application.c:80 msgid "Display version number" msgstr "Показати номер версії" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "Розкладка клавіатури" 07070100000044000081A400000000000000000000000166E7F90D000004EE000000000000000000000000000000000000001700000000tecla-47.0/po/zh_CN.po# Chinese (China) translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Boyuan Yang <073plan@gmail.com>, 2023. # lumingzh <lumingzh@qq.com>, 2024. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/issues\n" "POT-Creation-Date: 2024-09-03 20:05+0000\n" "PO-Revision-Date: 2024-09-04 20:18+0800\n" "Last-Translator: lumingzh <lumingzh@qq.com>\n" "Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Gtranslator 46.1\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "预览键盘布局" #: src/tecla-application.c:79 msgid "Attach to a parent window" msgstr "附加到父级窗口上" #: src/tecla-application.c:79 msgid "Window handle" msgstr "窗口处理" #: src/tecla-application.c:80 msgid "Display version number" msgstr "显示版本号" #: src/tecla-application.c:165 msgid "Keyboard Layout" msgstr "键盘布局" 07070100000045000081A400000000000000000000000166E7F90D000003B4000000000000000000000000000000000000001700000000tecla-47.0/po/zh_TW.po# Chinese (Taiwan) translation for tecla. # Copyright (C) 2023 tecla's COPYRIGHT HOLDER # This file is distributed under the same license as the tecla package. # Cheng-Chia Tseng <pswo10680@gmail.com>, 2023. # msgid "" msgstr "" "Project-Id-Version: tecla main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/tecla/-/issues\n" "POT-Creation-Date: 2023-10-18 18:21+0000\n" "PO-Revision-Date: 2023-10-21 19:39+0800\n" "Last-Translator: Cheng-Chia Tseng <zerngjia@gmail.com>\n" "Language-Team: Chinese (Taiwan) <chinese-l10n@googlegroups.com>\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.3.2\n" #: data/org.gnome.Tecla.desktop.in:3 msgid "Tecla" msgstr "Tecla" #: data/org.gnome.Tecla.desktop.in:4 msgid "Preview keyboard layouts" msgstr "預覽鍵盤配置" #: src/tecla-application.c:136 msgid "Keyboard Layout" msgstr "鍵盤配置" 07070100000046000041ED00000000000000000000000266E7F90D00000000000000000000000000000000000000000000000F00000000tecla-47.0/src07070100000047000081A400000000000000000000000166E7F90D000004CC000000000000000000000000000000000000001600000000tecla-47.0/src/main.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "config.h" #include <libadwaita-1/adwaita.h> #include <locale.h> #include <glib/gi18n.h> #include "tecla-application.h" int main (int argc, char *argv[]) { GApplication *app; bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); setlocale (LC_ALL, ""); adw_init (); app = tecla_application_new (); g_application_run (app, argc, argv); } 07070100000048000081A400000000000000000000000166E7F90D00000234000000000000000000000000000000000000001B00000000tecla-47.0/src/meson.buildresource_data = files ( 'tecla-view.ui', ) tecla_gresources = gnome.compile_resources('tecla-gresources', 'tecla.gresource.xml', dependencies: resource_data, ) source = [ 'tecla-application.c', 'tecla-key.c', 'tecla-keymap-observer.c', 'tecla-model.c', 'tecla-util.c', 'tecla-view.c', 'main.c', tecla_gresources, ] tecla = executable('tecla', sources: source, dependencies: [gtk_dep, gtk_wayland_dep, wayland_dep, adw_dep, xkbcommon_dep, libm_dep], install: true, include_directories: [config_inc], ) 07070100000049000081A400000000000000000000000166E7F90D00000466000000000000000000000000000000000000001700000000tecla-47.0/src/pc105.h#include "tecla-layout.h" static TeclaLayout pc105_layout = { .rows = { { { { "TLDE" }, { "AE01" }, { "AE02" }, { "AE03" }, { "AE04" }, { "AE05" }, { "AE06" }, { "AE07" }, { "AE08" }, { "AE09" }, { "AE10" }, { "AE11" }, { "AE12" }, { "BKSP", .width = 2 }, }, }, { { { "TAB", .width = 1.5 }, { "AD01" }, { "AD02" }, { "AD03" }, { "AD04" }, { "AD05" }, { "AD06" }, { "AD07" }, { "AD08" }, { "AD09" }, { "AD10" }, { "AD11" }, { "AD12" }, { "RTRN", .width = 1.5 }, }, }, { { { "CAPS", .width = 1.75 }, { "AC01" }, { "AC02" }, { "AC03" }, { "AC04" }, { "AC05" }, { "AC06" }, { "AC07" }, { "AC08" }, { "AC09" }, { "AC10" }, { "AC11" }, { "BKSL" }, { "RTRN", .width = 1.25, .height = -2 }, }, }, { { { "LFSH", .width = 1.5 }, { "LSGT" }, { "AB01" }, { "AB02" }, { "AB03" }, { "AB04" }, { "AB05" }, { "AB06" }, { "AB07" }, { "AB08" }, { "AB09" }, { "AB10" }, { "RTSH", .width = 2.5 }, }, }, { { { "LCTL", .width = 1.25 }, { "LWIN", .width = 1.25 }, { "ALT", .width = 1.25 }, { "SPCE", .width = 6.25 }, { "RALT", .width = 1.25 }, { "RWIN", .width = 1.25 }, { "COMP", .width = 1.25 }, { "RCTL", .width = 1.25 }, }, }, } }; 0707010000004A000081A400000000000000000000000166E7F90D00002E2B000000000000000000000000000000000000002300000000tecla-47.0/src/tecla-application.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "config.h" #include "tecla-application.h" #include "tecla-key.h" #include "tecla-keymap-observer.h" #include "tecla-model.h" #include "tecla-view.h" #include <glib/gi18n.h> #include <stdlib.h> #ifdef GDK_WINDOWING_WAYLAND #include <gdk/wayland/gdkwayland.h> #endif typedef struct { int level; guint keyval; } KeyInfo; struct _TeclaApplication { GtkApplication parent_instance; GtkWindow *main_window; TeclaView *main_view; TeclaModel *main_model; TeclaKeymapObserver *observer; gchar *layout; gboolean ignore_first_change; gchar *parent_handle; }; static GtkPopover *current_popover = NULL; G_DEFINE_TYPE (TeclaApplication, tecla_application, GTK_TYPE_APPLICATION) static int tecla_application_command_line (GApplication *app, GApplicationCommandLine *cl) { TeclaApplication *tecla_app = TECLA_APPLICATION (app); g_autofree GStrv argv = NULL; int argc; argv = g_application_command_line_get_arguments (cl, &argc); if (argc > 1) { g_free (tecla_app->layout); tecla_app->layout = g_strdup (argv[1]); } g_application_activate (app); return EXIT_SUCCESS; } const GOptionEntry all_options[] = { { "parent-handle", 0, 0, G_OPTION_ARG_STRING, NULL, N_("Attach to a parent window"), N_("Window handle") }, { "version", 0, 0, G_OPTION_ARG_NONE, NULL, N_("Display version number"), NULL }, { NULL, 0, 0, 0, NULL, NULL, NULL } /* end the list */ }; static int tecla_application_handle_local_options (GApplication *app, GVariantDict *options) { TeclaApplication *tecla_app = TECLA_APPLICATION (app); if (g_variant_dict_contains (options, "version")) { g_print ("%s %s\n", PACKAGE, VERSION); return 0; } g_variant_dict_lookup (options, "parent-handle", "s", &tecla_app->parent_handle); return -1; } static void level_clicked_cb (GtkButton *button, TeclaView *view) { int level; level = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "level")); tecla_view_set_current_level (view, level); } static void view_level_notify_cb (TeclaView *view, GParamSpec *pspec, GtkButton *button) { int level, toggle_level; level = tecla_view_get_current_level (view); toggle_level = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "level")); if (level == toggle_level) gtk_widget_set_state_flags (GTK_WIDGET (button), GTK_STATE_FLAG_CHECKED, FALSE); else gtk_widget_unset_state_flags (GTK_WIDGET (button), GTK_STATE_FLAG_CHECKED); } static void num_levels_notify_cb (TeclaView *view, GParamSpec *pspec, GtkBox *levels) { int num_levels, i; GtkWidget *child; while ((child = gtk_widget_get_first_child (GTK_WIDGET (levels))) != NULL) gtk_box_remove (levels, child); num_levels = tecla_view_get_num_levels (view); for (i = 0; i < num_levels; i++) { GtkWidget *button; g_autofree char *label = g_strdup_printf ("%d", i + 1); button = gtk_button_new_with_label (label); gtk_widget_add_css_class (button, "toggle"); gtk_widget_add_css_class (button, "pill"); gtk_widget_set_focusable (button, FALSE); gtk_box_append (levels, button); g_object_set_data (G_OBJECT (button), "level", GINT_TO_POINTER (i)); g_signal_connect (button, "clicked", G_CALLBACK (level_clicked_cb), view); g_signal_connect_object (view, "notify::level", G_CALLBACK (view_level_notify_cb), button, 0); } } static void update_title (GtkWindow *window, TeclaModel *model) { g_autofree gchar *title = NULL; title = g_strdup_printf ("%s ‐ %s", _("Keyboard Layout"), tecla_model_get_name (model)); gtk_window_set_title (GTK_WINDOW (window), title); } static GtkWindow * create_window (TeclaApplication *app, TeclaView **view_out) { g_autoptr (GtkBuilder) builder = NULL; TeclaView *view; GtkWindow *window; GtkBox *levels; g_type_ensure (TECLA_TYPE_VIEW); builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/org/gnome/tecla/tecla-window.ui", NULL); window = GTK_WINDOW (gtk_builder_get_object (builder, "window")); view = TECLA_VIEW (gtk_builder_get_object (builder, "view")); levels = GTK_BOX (gtk_builder_get_object (builder, "levels")); gtk_application_add_window (GTK_APPLICATION (app), window); g_signal_connect (view, "notify::num-levels", G_CALLBACK (num_levels_notify_cb), levels); if (view_out) *view_out = view; return window; } static void name_notify_cb (TeclaModel *model, GParamSpec *pspec, GtkWindow *window) { update_title (window, model); } static gboolean unparent_popover (GtkWidget *popover) { gtk_widget_unparent (popover); return G_SOURCE_REMOVE; } static void popover_closed_cb (GtkPopover *popover, TeclaView *view) { GtkWidget *parent; if (current_popover == popover) current_popover = NULL; parent = gtk_widget_get_parent (GTK_WIDGET (popover)); gtk_widget_unset_state_flags (parent, GTK_STATE_FLAG_ACTIVE); g_idle_add ((GSourceFunc) unparent_popover, popover); } static GtkPopover * create_popover (TeclaView *view, TeclaModel *model, GtkWidget *widget, const gchar *name) { int n_levels, i; xkb_keycode_t keycode; GtkPopover *popover; GtkWidget *box; g_autoptr (GArray) key_info = NULL; keycode = tecla_model_get_key_keycode (model, name); n_levels = tecla_view_get_num_levels (view); key_info = g_array_new (FALSE, TRUE, sizeof (KeyInfo)); for (i = 0; i < n_levels; i++) { KeyInfo info; info.level = i; info.keyval = tecla_model_get_keyval (model, info.level, keycode); if (info.keyval == 0) continue; g_array_append_val (key_info, info); } if (key_info->len < 2) return NULL; box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_widget_set_margin_start (box, 12); gtk_widget_set_margin_end (box, 12); gtk_widget_set_margin_top (box, 12); gtk_widget_set_margin_bottom (box, 12); for (i = 0; i < (int) key_info->len; i++) { GtkWidget *hbox, *level, *etching, *desc; KeyInfo *info; g_autofree gchar *str; info = &g_array_index (key_info, KeyInfo, i); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); str = g_strdup_printf ("%d", info->level + 1); level = gtk_label_new (str); gtk_widget_add_css_class (level, "heading"); gtk_box_append (GTK_BOX (hbox), level); str = tecla_model_get_key_label (model, info->level, name); etching = tecla_key_new (NULL); tecla_key_set_label (TECLA_KEY (etching), str); gtk_widget_add_css_class (etching, "tecla-key"); gtk_widget_set_sensitive (etching, FALSE); gtk_box_append (GTK_BOX (hbox), etching); desc = gtk_label_new (gdk_keyval_name (info->keyval)); gtk_box_append (GTK_BOX (hbox), desc); gtk_box_append (GTK_BOX (box), hbox); } popover = GTK_POPOVER (gtk_popover_new ()); gtk_popover_set_child (popover, box); gtk_popover_set_autohide (popover, FALSE); gtk_popover_set_position (popover, GTK_POS_TOP); g_signal_connect_after (popover, "closed", G_CALLBACK (popover_closed_cb), view); return popover; } static void key_activated_cb (TeclaView *view, const gchar *name, GtkWidget *widget, TeclaModel *model) { GtkPopover *popover; if (current_popover) { if (gtk_widget_get_parent (GTK_WIDGET (current_popover)) == widget) { gtk_popover_popdown (current_popover); return; } gtk_popover_popdown (current_popover); } if (!widget) return; popover = create_popover (view, model, widget, name); if (popover) { gtk_widget_set_parent (GTK_WIDGET (popover), widget); gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_ACTIVE, FALSE); gtk_popover_popup (popover); current_popover = popover; } } static void connect_model (GtkWindow *window, TeclaView *view, TeclaModel *model) { tecla_view_set_model (view, model); g_signal_connect_object (model, "notify::name", G_CALLBACK (name_notify_cb), window, 0); g_signal_connect_object (view, "key-activated", G_CALLBACK (key_activated_cb), model, 0); } static void observer_keymap_notify_cb (TeclaKeymapObserver *observer, GParamSpec *pspec, TeclaApplication *app) { g_autoptr (TeclaModel) model = NULL; struct xkb_keymap *xkb_keymap; if (app->ignore_first_change) { app->ignore_first_change = FALSE; return; } xkb_keymap = tecla_keymap_observer_get_keymap (observer); model = tecla_model_new_from_xkb_keymap (xkb_keymap); connect_model (app->main_window, app->main_view, model); update_title (app->main_window, model); g_set_object (&app->main_model, model); } static void observer_keymap_group_cb (TeclaKeymapObserver *observer, GParamSpec *pspec, TeclaApplication *app) { int group; group = tecla_keymap_observer_get_group (observer); if (app->main_model) tecla_model_set_group (app->main_model, group); } static void tecla_application_activate (GApplication *app) { TeclaApplication *tecla_app = TECLA_APPLICATION (app); if (!tecla_app->main_window) { tecla_app->main_window = create_window (tecla_app, &tecla_app->main_view); tecla_app->ignore_first_change = tecla_app->layout != NULL; tecla_app->observer = tecla_keymap_observer_new (); g_signal_connect (tecla_app->observer, "notify::keymap", G_CALLBACK (observer_keymap_notify_cb), app); g_signal_connect (tecla_app->observer, "notify::group", G_CALLBACK (observer_keymap_group_cb), app); } if (tecla_app->layout) { g_clear_object (&tecla_app->main_model); tecla_app->main_model = tecla_model_new_from_layout_name (tecla_app->layout); if (tecla_app->main_model) { connect_model (tecla_app->main_window, tecla_app->main_view, tecla_app->main_model); g_clear_pointer (&tecla_app->layout, g_free); update_title (tecla_app->main_window, tecla_app->main_model); } } #ifdef GDK_WINDOWING_WAYLAND if (tecla_app->parent_handle && GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (tecla_app->main_window)))) { GdkSurface *surface; gtk_widget_set_visible (GTK_WIDGET (tecla_app->main_window), TRUE); surface = gtk_native_get_surface (GTK_NATIVE (tecla_app->main_window)); gdk_wayland_toplevel_set_transient_for_exported (GDK_TOPLEVEL (surface), tecla_app->parent_handle); } #endif gtk_window_present (tecla_app->main_window); } static void tecla_application_class_init (TeclaApplicationClass *klass) { GApplicationClass *application_class = G_APPLICATION_CLASS (klass); application_class->command_line = tecla_application_command_line; application_class->activate = tecla_application_activate; application_class->handle_local_options = tecla_application_handle_local_options; } static void tecla_application_init (TeclaApplication *app) { gtk_window_set_default_icon_name ("org.gnome.Tecla"); g_application_add_main_option_entries (G_APPLICATION (app), all_options); } GApplication * tecla_application_new (void) { return g_object_new (TECLA_TYPE_APPLICATION, "application-id", "org.gnome.Tecla", "flags", G_APPLICATION_HANDLES_COMMAND_LINE, NULL); } 0707010000004B000081A400000000000000000000000166E7F90D00000413000000000000000000000000000000000000002300000000tecla-47.0/src/tecla-application.h/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <gtk/gtk.h> #pragma once #define TECLA_TYPE_APPLICATION (tecla_application_get_type ()) G_DECLARE_FINAL_TYPE (TeclaApplication, tecla_application, TECLA, APPLICATION, GtkApplication) GApplication * tecla_application_new (void); 0707010000004C000081A400000000000000000000000166E7F90D000015BC000000000000000000000000000000000000001B00000000tecla-47.0/src/tecla-key.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tecla-key.h" #include <math.h> struct _TeclaKey { GtkWidget parent_class; gchar *name; gchar *label; }; enum { PROP_0, PROP_NAME, PROP_LABEL, N_PROPS, }; static GParamSpec *props[N_PROPS] = { 0, }; enum { ACTIVATED, N_SIGNALS, }; static guint signals[N_SIGNALS] = { 0, }; G_DEFINE_TYPE (TeclaKey, tecla_key, GTK_TYPE_WIDGET) static void tecla_key_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { TeclaKey *key = TECLA_KEY (object); switch (prop_id) { case PROP_NAME: g_value_set_string (value, key->name); break; case PROP_LABEL: g_value_set_string (value, key->label); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void tecla_key_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { TeclaKey *key = TECLA_KEY (object); switch (prop_id) { case PROP_NAME: key->name = g_value_dup_string (value); break; case PROP_LABEL: tecla_key_set_label (TECLA_KEY (object), g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void tecla_key_finalize (GObject *object) { TeclaKey *key = TECLA_KEY (object); g_free (key->name); g_free (key->label); G_OBJECT_CLASS (tecla_key_parent_class)->finalize (object); } static void tecla_key_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { TeclaKey *key = TECLA_KEY (widget); PangoLayout *layout; PangoRectangle rect; GdkRGBA color; int width, height, x, y; float scale; layout = gtk_widget_create_pango_layout (widget, key->label); gtk_widget_get_color (widget, &color); width = gtk_widget_get_width (widget); height = gtk_widget_get_height (widget); pango_layout_get_pixel_extents (layout, NULL, &rect); scale = MIN ((float) height / rect.height * 0.75, 3); /* Snap scale to 1/4ths of logical pixels */ scale = roundf (scale * 4.0) / 4.0; /* Ensure pixel exactness when placing the layout * centered and scaled on the widget, instead * of translate/scale/translate. */ x = (width / 2) - ((rect.width / 2) * scale); y = (height / 2) - ((rect.height / 2) * scale); gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (x, y)); gtk_snapshot_scale (snapshot, scale, scale); gtk_snapshot_append_layout (snapshot, layout, &color); } static void tecla_key_class_init (TeclaKeyClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkCssProvider *css_provider; object_class->set_property = tecla_key_set_property; object_class->get_property = tecla_key_get_property; object_class->finalize = tecla_key_finalize; widget_class->snapshot = tecla_key_snapshot; signals[ACTIVATED] = g_signal_new ("activated", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); props[PROP_NAME] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); props[PROP_LABEL] = g_param_spec_string ("label", "label", "label", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); g_object_class_install_properties (object_class, N_PROPS, props); css_provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (css_provider, "/org/gnome/tecla/tecla-key.css"); gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_widget_class_set_css_name (widget_class, "button"); } static void click_release_cb (GtkGestureClick *gesture, int n_press, double x, double y, TeclaKey *key) { g_signal_emit (key, signals[ACTIVATED], 0); } static void tecla_key_init (TeclaKey *key) { GtkGesture *gesture; gesture = gtk_gesture_click_new (); g_signal_connect (gesture, "released", G_CALLBACK (click_release_cb), key); gtk_widget_add_controller (GTK_WIDGET (key), GTK_EVENT_CONTROLLER (gesture)); gtk_widget_add_css_class (GTK_WIDGET (key), "opaque"); } GtkWidget * tecla_key_new (const gchar *name) { return g_object_new (TECLA_TYPE_KEY, "name", name, NULL); } void tecla_key_set_label (TeclaKey *key, const gchar *label) { if (g_strcmp0 (label, key->label) == 0) return; g_free (key->label); key->label = g_strdup (label); gtk_widget_queue_draw (GTK_WIDGET (key)); } const gchar * tecla_key_get_name (TeclaKey *key) { return key->name; } 0707010000004D000081A400000000000000000000000166E7F90D0000008F000000000000000000000000000000000000001D00000000tecla-47.0/src/tecla-key.cssbutton.tecla-key { font-weight: 400; } button.tecla-key:selected { background-color: @accent_bg_color; color: @accent_fg_color; } 0707010000004E000081A400000000000000000000000166E7F90D00000452000000000000000000000000000000000000001B00000000tecla-47.0/src/tecla-key.h/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <gtk/gtk.h> #pragma once #define TECLA_TYPE_KEY (tecla_key_get_type ()) G_DECLARE_FINAL_TYPE (TeclaKey, tecla_key, TECLA, KEY, GtkWidget) GtkWidget * tecla_key_new (const gchar *name); void tecla_key_set_label (TeclaKey *key, const gchar *label); const gchar * tecla_key_get_name (TeclaKey *key); 0707010000004F000081A400000000000000000000000166E7F90D00001BA9000000000000000000000000000000000000002700000000tecla-47.0/src/tecla-keymap-observer.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tecla-keymap-observer.h" #include <gdk/gdk.h> #ifdef GDK_WINDOWING_WAYLAND #include <gdk/wayland/gdkwayland.h> #include <wayland-client.h> #endif #include "tecla-util.h" struct _TeclaKeymapObserver { GObject parent_instance; #ifdef GDK_WINDOWING_WAYLAND uint32_t seat_id; struct wl_registry *wl_registry; struct wl_seat *wl_seat; struct wl_keyboard *wl_keyboard; #endif struct xkb_keymap *xkb_keymap; uint32_t group; }; enum { PROP_0, PROP_KEYMAP, PROP_GROUP, N_PROPS, }; static GParamSpec *props[N_PROPS] = { 0, }; G_DEFINE_TYPE (TeclaKeymapObserver, tecla_keymap_observer, G_TYPE_OBJECT) #ifdef GDK_WINDOWING_WAYLAND static void dummy (void) { } static void keyboard_keymap (void *data, struct wl_keyboard *wl_keyboard, uint32_t format, int32_t fd, uint32_t size) { TeclaKeymapObserver *observer = data; g_autoptr (GMappedFile) mapped_file = NULL; struct xkb_context *xkb_context; mapped_file = g_mapped_file_new_from_fd (fd, FALSE, NULL); if (!mapped_file) return; if (observer->xkb_keymap) xkb_keymap_unref (observer->xkb_keymap); xkb_context = tecla_util_create_xkb_context (); observer->xkb_keymap = xkb_keymap_new_from_string (xkb_context, g_mapped_file_get_contents (mapped_file), format, XKB_KEYMAP_COMPILE_NO_FLAGS); xkb_context_unref (xkb_context); close (fd); g_object_notify (G_OBJECT (observer), "keymap"); } static void keyboard_modifiers (void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, uint32_t group) { TeclaKeymapObserver *observer = data; if (observer->group == group) return; observer->group = group; g_object_notify (G_OBJECT (observer), "group"); } static struct wl_keyboard_listener keyboard_listener = { keyboard_keymap, (void (*) (void*, struct wl_keyboard*, uint32_t, struct wl_surface*, struct wl_array*)) dummy, (void (*) (void*, struct wl_keyboard*, uint32_t, struct wl_surface*)) dummy, (void (*) (void*, struct wl_keyboard*, uint32_t, uint32_t, uint32_t, uint32_t)) dummy, keyboard_modifiers, (void (*)(void *, struct wl_keyboard *, int32_t, int32_t)) dummy, }; static void seat_capabilities (void *data, struct wl_seat *wl_seat, uint32_t capabilities) { TeclaKeymapObserver *observer = data; if (!observer->wl_keyboard && (capabilities & WL_SEAT_CAPABILITY_KEYBOARD) != 0) { observer->wl_keyboard = wl_seat_get_keyboard (wl_seat); wl_keyboard_add_listener (observer->wl_keyboard, &keyboard_listener, observer); } else if (observer->wl_keyboard && (capabilities & WL_SEAT_CAPABILITY_KEYBOARD) == 0) { g_clear_pointer (&observer->wl_keyboard, wl_keyboard_destroy); } } static struct wl_seat_listener seat_listener = { seat_capabilities, (void (*)(void *, struct wl_seat *, const char *)) dummy, }; static void registry_global (void *data, struct wl_registry *wl_registry, uint32_t name, const char *interface, uint32_t version) { TeclaKeymapObserver *observer = data; if (strcmp (interface, "wl_seat") != 0) return; observer->wl_seat = wl_registry_bind (wl_registry, name, &wl_seat_interface, 1); wl_seat_add_listener (observer->wl_seat, &seat_listener, observer); } static void registry_global_remove (void *data, struct wl_registry *wl_registry, uint32_t name) { TeclaKeymapObserver *observer = data; if (name != observer->seat_id) return; g_clear_pointer (&observer->wl_keyboard, wl_keyboard_destroy); g_clear_pointer (&observer->wl_seat, wl_seat_destroy); } static struct wl_registry_listener registry_listener = { registry_global, registry_global_remove, }; #endif static void tecla_keymap_observer_finalize (GObject *object) { TeclaKeymapObserver *observer = TECLA_KEYMAP_OBSERVER (object); #ifdef GDK_WINDOWING_WAYLAND g_clear_pointer (&observer->wl_keyboard, wl_keyboard_destroy); g_clear_pointer (&observer->wl_seat, wl_seat_destroy); g_clear_pointer (&observer->wl_registry, wl_registry_destroy); #endif g_clear_pointer (&observer->xkb_keymap, xkb_keymap_unref); G_OBJECT_CLASS (tecla_keymap_observer_parent_class)->finalize (object); } static void tecla_keymap_observer_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { TeclaKeymapObserver *observer = TECLA_KEYMAP_OBSERVER (object); switch (prop_id) { case PROP_KEYMAP: g_value_set_pointer (value, observer->xkb_keymap); break; case PROP_GROUP: g_value_set_int (value, observer->group); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void tecla_keymap_observer_class_init (TeclaKeymapObserverClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = tecla_keymap_observer_finalize; object_class->get_property = tecla_keymap_observer_get_property; props[PROP_KEYMAP] = g_param_spec_pointer ("keymap", "Keymap", "Keymap", G_PARAM_READABLE); props[PROP_GROUP] = g_param_spec_int ("group", "Group", "Group", 0, G_MAXINT, 0, G_PARAM_READABLE); g_object_class_install_properties (object_class, N_PROPS, props); } static void tecla_keymap_observer_init (TeclaKeymapObserver *observer) { GdkDisplay *display; display = gdk_display_get_default (); #ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY (display)) { struct wl_display *wl_display; struct wl_registry *wl_registry; wl_display = gdk_wayland_display_get_wl_display (display); wl_registry = wl_display_get_registry (wl_display); wl_registry_add_listener (wl_registry, ®istry_listener, observer); } #endif } TeclaKeymapObserver * tecla_keymap_observer_new (void) { return g_object_new (TECLA_TYPE_KEYMAP_OBSERVER, NULL); } struct xkb_keymap * tecla_keymap_observer_get_keymap (TeclaKeymapObserver *observer) { return observer->xkb_keymap; } int tecla_keymap_observer_get_group (TeclaKeymapObserver *observer) { return observer->group; } 07070100000050000081A400000000000000000000000166E7F90D000004E4000000000000000000000000000000000000002700000000tecla-47.0/src/tecla-keymap-observer.h/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <gtk/gtk.h> #include <xkbcommon/xkbcommon.h> #define TECLA_TYPE_KEYMAP_OBSERVER (tecla_keymap_observer_get_type ()) G_DECLARE_FINAL_TYPE (TeclaKeymapObserver, tecla_keymap_observer, TECLA, KEYMAP_OBSERVER, GObject); TeclaKeymapObserver * tecla_keymap_observer_new (void); struct xkb_keymap * tecla_keymap_observer_get_keymap (TeclaKeymapObserver *observer); int tecla_keymap_observer_get_group (TeclaKeymapObserver *observer); 07070100000051000081A400000000000000000000000166E7F90D00000123000000000000000000000000000000000000001E00000000tecla-47.0/src/tecla-layout.htypedef struct _TeclaLayout TeclaLayout; typedef struct _TeclaLayoutKey TeclaLayoutKey; struct _TeclaLayoutKey { const gchar *name; double width; double height; }; struct _TeclaLayoutRow { struct _TeclaLayoutKey keys[32]; }; struct _TeclaLayout { struct _TeclaLayoutRow rows[12]; }; 07070100000052000081A400000000000000000000000166E7F90D00001C4F000000000000000000000000000000000000001D00000000tecla-47.0/src/tecla-model.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tecla-model.h" #include "tecla-util.h" struct _TeclaModel { GObject parent_instance; struct xkb_keymap *xkb_keymap; int group; }; enum { PROP_0, PROP_NAME, N_PROPS }; static GParamSpec *props[N_PROPS] = { 0, }; enum { CHANGED, N_SIGNALS, }; static guint signals[N_SIGNALS] = { 0, }; G_DEFINE_TYPE (TeclaModel, tecla_model, G_TYPE_OBJECT) static void tecla_model_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { TeclaModel *model = TECLA_MODEL (object); switch (prop_id) { case PROP_NAME: g_value_set_string (value, tecla_model_get_name (model)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void tecla_model_class_init (TeclaModelClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->get_property = tecla_model_get_property; signals[CHANGED] = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); props[PROP_NAME] = g_param_spec_string ("name", "Name", "Name", NULL, G_PARAM_READABLE); g_object_class_install_properties (object_class, N_PROPS, props); } static void tecla_model_init (TeclaModel *model) { } static gchar * get_key_label (xkb_keysym_t key) { const gchar *label = NULL; gchar buf[5]; gunichar uc; switch (key) { case GDK_KEY_Mode_switch: case GDK_KEY_ISO_Level3_Shift: label = ""; break; case GDK_KEY_BackSpace: label = ""; break; case GDK_KEY_space: label = ""; break; case GDK_KEY_dead_grave: label = "ˋ"; break; case GDK_KEY_dead_abovecomma: label = "̓"; break; case GDK_KEY_dead_abovereversedcomma: label = "̔"; break; case GDK_KEY_dead_acute: label = "ˊ"; break; case GDK_KEY_dead_circumflex: label = "ˆ"; break; case GDK_KEY_dead_tilde: label = "~"; break; case GDK_KEY_dead_macron: label = "ˉ"; break; case GDK_KEY_dead_breve: label = "˘"; break; case GDK_KEY_dead_abovedot: label = "˙"; break; case GDK_KEY_dead_diaeresis: label = "¨"; break; case GDK_KEY_dead_abovering: label = "˚"; break; case GDK_KEY_dead_doubleacute: label = "˝"; break; case GDK_KEY_dead_caron: label = "ˇ"; break; case GDK_KEY_dead_cedilla: label = "¸"; break; case GDK_KEY_dead_ogonek: label = "˛"; break; case GDK_KEY_dead_belowdot: label = " ̣"; break; case GDK_KEY_dead_hook: label = "̉"; break; case GDK_KEY_dead_horn: label = "̛"; break; case GDK_KEY_dead_stroke: label = "̵"; break; case GDK_KEY_horizconnector: label = ""; break; case GDK_KEY_Multi_key: label = ""; break; case GDK_KEY_Return: label = ""; break; case GDK_KEY_Shift_L: case GDK_KEY_Shift_R: label = ""; break; case GDK_KEY_Caps_Lock: label = ""; break; case GDK_KEY_Tab: case GDK_KEY_ISO_Left_Tab: label = ""; break; case GDK_KEY_Alt_L: case GDK_KEY_Alt_R: label = ""; break; case GDK_KEY_Super_L: case GDK_KEY_Super_R: label = ""; break; case GDK_KEY_Control_L: case GDK_KEY_Control_R: label = ""; break; case GDK_KEY_Meta_L: case GDK_KEY_Meta_R: label = ""; break; case GDK_KEY_Menu: label = ""; break; case GDK_KEY_VoidSymbol: label = ""; break; case GDK_KEY_nobreakspace: label = ""; break; default: uc = gdk_keyval_to_unicode (key); if (uc != 0 && g_unichar_isgraph (uc)) { buf[g_unichar_to_utf8 (uc, buf)] = '\0'; return g_strdup (buf); } else { const gchar *name = gdk_keyval_name (key); if (name) { g_autofree gchar *fixed_name = NULL; gchar *p; fixed_name = g_strdup (name); /* Replace underscores with spaces */ for (p = fixed_name; *p; p++) if (*p == '_') *p = ' '; /* Get rid of scary ISO_ prefix */ if (g_strstr_len (fixed_name, -1, "ISO ")) return g_strdup (fixed_name + 4); else return g_strdup (fixed_name); } else { return g_strdup (""); } } break; } return g_strdup (label); } TeclaModel * tecla_model_new_from_xkb_keymap (struct xkb_keymap *xkb_keymap) { TeclaModel *model; model = g_object_new (TECLA_TYPE_MODEL, NULL); model->xkb_keymap = xkb_keymap_ref (xkb_keymap); return model; } TeclaModel * tecla_model_new_from_layout_name (const gchar *name) { TeclaModel *model = NULL; struct xkb_context *xkb_context; struct xkb_keymap *xkb_keymap; g_autofree gchar *layout = NULL; const gchar *variant = NULL, *sep; struct xkb_rule_names rule_names = { .rules = "evdev", .model = "pc105", }; sep = strchr (name, '+'); if (sep) { variant = sep + 1; layout = g_strndup (name, sep - name); } else { layout = g_strdup (name); } rule_names.layout = layout; rule_names.variant = variant; xkb_context = tecla_util_create_xkb_context (); xkb_keymap = xkb_keymap_new_from_names (xkb_context, &rule_names, 0); xkb_context_unref (xkb_context); if (xkb_keymap) { model = tecla_model_new_from_xkb_keymap (xkb_keymap); xkb_keymap_unref (xkb_keymap); } return model; } const gchar * tecla_model_get_keycode_key (TeclaModel *model, xkb_keycode_t keycode) { return xkb_keymap_key_get_name (model->xkb_keymap, keycode); } xkb_keycode_t tecla_model_get_key_keycode (TeclaModel *model, const gchar *key) { return xkb_keymap_key_by_name (model->xkb_keymap, key); } gchar * tecla_model_get_key_label (TeclaModel *model, int level, const gchar *key) { xkb_keycode_t keycode; guint keysym; keycode = xkb_keymap_key_by_name (model->xkb_keymap, key); keysym = tecla_model_get_keyval (model, level, keycode); if (keysym == 0) return NULL; return get_key_label (keysym); } guint tecla_model_get_keyval (TeclaModel *model, int level, xkb_keycode_t keycode) { const xkb_keysym_t *syms; int n_syms; n_syms = xkb_keymap_key_get_syms_by_level (model->xkb_keymap, keycode, model->group, level, &syms); if (n_syms == 0) return 0; return syms[0]; } const gchar * tecla_model_get_name (TeclaModel *model) { return xkb_keymap_layout_get_name (model->xkb_keymap, model->group); } void tecla_model_set_group (TeclaModel *model, int group) { model->group = group; g_object_notify (G_OBJECT (model), "name"); g_signal_emit (model, signals[CHANGED], 0); } 07070100000053000081A400000000000000000000000166E7F90D0000068B000000000000000000000000000000000000001D00000000tecla-47.0/src/tecla-model.h/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <gtk/gtk.h> #include <xkbcommon/xkbcommon.h> #pragma once #define TECLA_TYPE_MODEL (tecla_model_get_type ()) G_DECLARE_FINAL_TYPE (TeclaModel, tecla_model, TECLA, MODEL, GObject) TeclaModel * tecla_model_new_from_xkb_keymap (struct xkb_keymap *xkb_keymap); TeclaModel * tecla_model_new_from_layout_name (const gchar *layout); const gchar * tecla_model_get_keycode_key (TeclaModel *model, xkb_keycode_t keycode); xkb_keycode_t tecla_model_get_key_keycode (TeclaModel *model, const gchar *key); gchar * tecla_model_get_key_label (TeclaModel *model, int level, const gchar *key); guint tecla_model_get_keyval (TeclaModel *model, int level, xkb_keycode_t keycode); const gchar * tecla_model_get_name (TeclaModel *model); void tecla_model_set_group (TeclaModel *model, int group); 07070100000054000081A400000000000000000000000166E7F90D000005F6000000000000000000000000000000000000001C00000000tecla-47.0/src/tecla-util.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tecla-util.h" #include <gtk/gtk.h> struct xkb_context * tecla_util_create_xkb_context (void) { struct xkb_context *ctx; char xdg[1024] = {0}; const char *env; /* * We can only append search paths in libxkbcommon, so we start with an * empty set, then add the XDG dir, then add the default search paths. */ ctx = xkb_context_new (XKB_CONTEXT_NO_DEFAULT_INCLUDES); if ((env = g_getenv ("XDG_CONFIG_HOME"))) { g_snprintf (xdg, sizeof xdg, "%s/xkb", env); } else if ((env = g_getenv ("HOME"))) { g_snprintf (xdg, sizeof xdg, "%s/.config/xkb", env); } if (env) xkb_context_include_path_append (ctx, xdg); xkb_context_include_path_append_default (ctx); return ctx; } 07070100000055000081A400000000000000000000000166E7F90D0000037E000000000000000000000000000000000000001C00000000tecla-47.0/src/tecla-util.h/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <xkbcommon/xkbcommon.h> #pragma once struct xkb_context * tecla_util_create_xkb_context (void); 07070100000056000081A400000000000000000000000166E7F90D00002FEA000000000000000000000000000000000000001C00000000tecla-47.0/src/tecla-view.c/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <gtk/gtk.h> #include <xkbcommon/xkbcommon.h> #include "tecla-view.h" #include "pc105.h" #include "tecla-key.h" enum { LEVEL2_PRESSED = 1 << 0, LEVEL3_PRESSED = 1 << 1, }; struct _TeclaView { GtkWidget parent_instance; GtkWidget *grid; GHashTable *keys_by_name; TeclaModel *model; guint model_changed_id; GList *level2_keys; GList *level3_keys; guint toggled_levels; int level; }; G_DEFINE_TYPE (TeclaView, tecla_view, GTK_TYPE_WIDGET) enum { PROP_0, PROP_MODEL, PROP_LEVEL, PROP_NUM_LEVELS, N_PROPS, }; static GParamSpec *props[N_PROPS]; enum { KEY_ACTIVATED, N_SIGNALS, }; static guint signals[N_SIGNALS] = { 0, }; static void update_view (TeclaView *view); static void tecla_view_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { TeclaView *view = TECLA_VIEW (object); switch (prop_id) { case PROP_MODEL: tecla_view_set_model (view, g_value_get_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void tecla_view_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { TeclaView *view = TECLA_VIEW (object); switch (prop_id) { case PROP_MODEL: g_value_set_object (value, view->model); break; case PROP_LEVEL: g_value_set_int (value, view->level); break; case PROP_NUM_LEVELS: g_value_set_int (value, tecla_view_get_num_levels (view)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void tecla_view_finalize (GObject *object) { TeclaView *view = TECLA_VIEW (object); g_hash_table_unref (view->keys_by_name); g_clear_list (&view->level2_keys, NULL); g_clear_list (&view->level3_keys, NULL); gtk_widget_unparent (gtk_widget_get_first_child (GTK_WIDGET (view))); G_OBJECT_CLASS (tecla_view_parent_class)->finalize (object); } static void update_toggled_key_list (TeclaView *view, GList *keys, guint flag) { GList *l; for (l = keys; l; l = l->next) { GtkWidget *key; key = g_hash_table_lookup (view->keys_by_name, l->data); if ((view->toggled_levels & flag) != 0) gtk_widget_set_state_flags (key, GTK_STATE_FLAG_SELECTED, FALSE); else gtk_widget_unset_state_flags (key, GTK_STATE_FLAG_SELECTED); } } static void update_toggled_keys (TeclaView *view, const gchar *pressed_key_name) { const gchar *name = pressed_key_name; if (g_list_find_custom (view->level2_keys, name, (GCompareFunc) g_strcmp0)) { if ((view->toggled_levels & LEVEL2_PRESSED) != 0) view->toggled_levels &= ~LEVEL2_PRESSED; else view->toggled_levels |= LEVEL2_PRESSED; } else if (g_list_find_custom (view->level3_keys, name, (GCompareFunc) g_strcmp0)) { if ((view->toggled_levels & LEVEL3_PRESSED) != 0) view->toggled_levels &= ~LEVEL3_PRESSED; else view->toggled_levels |= LEVEL3_PRESSED; } update_toggled_key_list (view, view->level2_keys, LEVEL2_PRESSED); update_toggled_key_list (view, view->level3_keys, LEVEL3_PRESSED); } static void update_level (TeclaView *view) { int level; if (view->toggled_levels == (LEVEL2_PRESSED | LEVEL3_PRESSED)) level = 3; else if (view->toggled_levels == LEVEL3_PRESSED) level = 2; else if (view->toggled_levels == LEVEL2_PRESSED) level = 1; else level = 0; if (view->level == level) return; view->level = level; g_object_notify (G_OBJECT (view), "level"); update_view (view); } static void bind_state (GtkWidget *w1, GtkStateFlags old_flags, GtkWidget *w2) { GtkStateFlags flags; flags = gtk_widget_get_state_flags (w1); if (flags != gtk_widget_get_state_flags (w2)) gtk_widget_set_state_flags (w2, flags, TRUE); } static void pair_state (GtkWidget *widget, GtkWidget *other_widget) { g_signal_connect (widget, "state-flags-changed", G_CALLBACK (bind_state), other_widget); g_signal_connect (other_widget, "state-flags-changed", G_CALLBACK (bind_state), widget); } static void key_activated_cb (TeclaKey *key, TeclaView *view) { const gchar *name; name = tecla_key_get_name (key); g_signal_emit (view, signals[KEY_ACTIVATED], 0, name, key); update_toggled_keys (view, name); update_level (view); } static void construct_grid (TeclaView *view) { gulong i, j; int anchor = 0; /* make sure we show the keyboard layout in RTL same as in LTR */ gtk_widget_set_direction (view->grid, GTK_TEXT_DIR_LTR); for (i = 0; i < G_N_ELEMENTS (pc105_layout.rows); i++) { for (j = 0; j < G_N_ELEMENTS (pc105_layout.rows[i].keys); j++) { TeclaLayoutKey *key; GtkWidget *button, *prev; double width, height; int left, top; key = &pc105_layout.rows[i].keys[j]; if (!key->name) break; left = anchor; top = key->height >= 0 ? i : i + key->height + 1; width = MAX (key->width, 1) * 4; height = MAX (fabs (key->height), 1); button = tecla_key_new (key->name); g_signal_connect (button, "activated", G_CALLBACK (key_activated_cb), view); gtk_widget_add_css_class (button, "tecla-key"); gtk_grid_attach (GTK_GRID (view->grid), button, left, top, (int) width, (int) height); anchor += (int) width; prev = g_hash_table_lookup (view->keys_by_name, key->name); if (prev) { pair_state (prev, button); } else { g_hash_table_insert (view->keys_by_name, (gpointer) tecla_key_get_name (TECLA_KEY (button)), button); } } anchor = 0; } gtk_widget_set_layout_manager (GTK_WIDGET (view), gtk_bin_layout_new ()); } static void tecla_view_constructed (GObject *object) { TeclaView *view = TECLA_VIEW (object); G_OBJECT_CLASS (tecla_view_parent_class)->constructed (object); construct_grid (view); } static void tecla_view_class_init (TeclaViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->set_property = tecla_view_set_property; object_class->get_property = tecla_view_get_property; object_class->finalize = tecla_view_finalize; object_class->constructed = tecla_view_constructed; signals[KEY_ACTIVATED] = g_signal_new ("key-activated", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_STRING, GTK_TYPE_WIDGET); props[PROP_MODEL] = g_param_spec_object ("model", "Model", "Model", TECLA_TYPE_MODEL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); props[PROP_LEVEL] = g_param_spec_int ("level", "Level", "Level", 0, G_MAXINT, 0, G_PARAM_READABLE); props[PROP_NUM_LEVELS] = g_param_spec_int ("num-levels", "Number of levels", "Number of levels", 0, G_MAXINT, 0, G_PARAM_READABLE); g_object_class_install_properties (object_class, N_PROPS, props); gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/tecla/tecla-view.ui"); gtk_widget_class_bind_template_child (widget_class, TeclaView, grid); } static void key_pressed_cb (GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType modifiers, TeclaView *view) { const gchar *name; GtkWidget *key; if (!view->model) return; name = tecla_model_get_keycode_key (view->model, keycode); key = g_hash_table_lookup (view->keys_by_name, name); if (key) gtk_widget_set_state_flags (key, GTK_STATE_FLAG_ACTIVE, FALSE); update_toggled_keys (view, name); update_level (view); } static void key_released_cb (GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType modifiers, TeclaView *view) { const gchar *name; GtkWidget *key; if (!view->model) return; name = tecla_model_get_keycode_key (view->model, keycode); key = g_hash_table_lookup (view->keys_by_name, name); if (key) gtk_widget_unset_state_flags (key, GTK_STATE_FLAG_ACTIVE); g_signal_emit (view, signals[KEY_ACTIVATED], 0, name, key); } static void tecla_view_init (TeclaView *view) { GtkEventController *controller; gtk_widget_init_template (GTK_WIDGET (view)); view->keys_by_name = g_hash_table_new (g_str_hash, g_str_equal); controller = gtk_event_controller_key_new (); g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed_cb), view); g_signal_connect (controller, "key-released", G_CALLBACK (key_released_cb), view); gtk_widget_add_controller (GTK_WIDGET (view), controller); gtk_widget_set_focusable (GTK_WIDGET (view), TRUE); } static void update_from_model_foreach (const gchar *name, TeclaKey *key, TeclaView *view) { xkb_keycode_t keycode; g_autofree gchar *action = NULL; guint keyval; keycode = tecla_model_get_key_keycode (view->model, name); keyval = tecla_model_get_keyval (view->model, 0, keycode); if (keyval == GDK_KEY_Shift_L || keyval == GDK_KEY_Shift_R) { if (!g_list_find_custom (view->level2_keys, name, (GCompareFunc) g_strcmp0)) view->level2_keys = g_list_prepend (view->level2_keys, (gpointer) name); action = g_strdup ("⬆"); } if (keyval == GDK_KEY_ISO_Level3_Shift) { if (!g_list_find_custom (view->level3_keys, name, (GCompareFunc) g_strcmp0)) view->level3_keys = g_list_prepend (view->level3_keys, (gpointer) name); action = g_strdup ("⎇"); } if (!action) action = tecla_model_get_key_label (view->model, view->level, name); tecla_key_set_label (key, action); } static void update_view (TeclaView *view) { g_hash_table_foreach (view->keys_by_name, (GHFunc) update_from_model_foreach, view); } GtkWidget * tecla_view_new (void) { return g_object_new (TECLA_TYPE_VIEW, NULL); } static void model_changed_cb (TeclaModel *model, TeclaView *view) { view->toggled_levels = 0; view->level = 0; update_toggled_key_list (view, view->level2_keys, LEVEL2_PRESSED); update_toggled_key_list (view, view->level3_keys, LEVEL3_PRESSED); update_level (view); g_clear_list (&view->level2_keys, NULL); g_clear_list (&view->level3_keys, NULL); update_view (view); g_object_notify (G_OBJECT (view), "num-levels"); g_object_notify (G_OBJECT (view), "level"); } void tecla_view_set_model (TeclaView *view, TeclaModel *model) { if (view->model == model) return; if (view->model_changed_id) { g_signal_handler_disconnect (view->model, view->model_changed_id); view->model_changed_id = 0; } g_set_object (&view->model, model); if (view->model) { view->model_changed_id = g_signal_connect (view->model, "changed", G_CALLBACK (model_changed_cb), view); } model_changed_cb (model, view); } int tecla_view_get_current_level (TeclaView *view) { return view->level; } void tecla_view_set_current_level (TeclaView *view, int level) { guint toggled_levels = 0; if (level == 3 || level == 2) toggled_levels |= LEVEL3_PRESSED; if (level == 3 || level == 1) toggled_levels |= LEVEL2_PRESSED; view->toggled_levels = toggled_levels; update_toggled_key_list (view, view->level2_keys, LEVEL2_PRESSED); update_toggled_key_list (view, view->level3_keys, LEVEL3_PRESSED); update_level (view); } int tecla_view_get_num_levels (TeclaView *view) { if (view->level2_keys && view->level3_keys) return 4; else if (view->level3_keys || view->level2_keys) return 2; else return 1; } 07070100000057000081A400000000000000000000000166E7F90D000004F9000000000000000000000000000000000000001C00000000tecla-47.0/src/tecla-view.h/* Copyright (C) 2023 Red Hat, Inc. * * 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, see <http://www.gnu.org/licenses/>. * * Author: Carlos Garnacho <carlosg@gnome.org> * * SPDX-License-Identifier: GPL-2.0-or-later */ #include <gtk/gtk.h> #include "tecla-model.h" #pragma once #define TECLA_TYPE_VIEW (tecla_view_get_type ()) G_DECLARE_FINAL_TYPE (TeclaView, tecla_view, TECLA, VIEW, GtkWidget) GtkWidget * tecla_view_new (void); void tecla_view_set_model (TeclaView *view, TeclaModel *model); int tecla_view_get_current_level (TeclaView *view); void tecla_view_set_current_level (TeclaView *view, int level); int tecla_view_get_num_levels (TeclaView *view); 07070100000058000081A400000000000000000000000166E7F90D00000201000000000000000000000000000000000000001D00000000tecla-47.0/src/tecla-view.ui<?xml version="1.0" encoding="UTF-8"?> <interface> <template class="TeclaView" parent="GtkWidget"> <child> <object class="GtkAspectFrame"> <child> <object class="GtkGrid" id="grid"> <property name="column-homogeneous">true</property> <property name="column-spacing">6</property> <property name="row-homogeneous">true</property> <property name="row-spacing">6</property> </object> </child> </object> </child> </template> </interface> 07070100000059000081A400000000000000000000000166E7F90D0000084C000000000000000000000000000000000000001F00000000tecla-47.0/src/tecla-window.ui<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk" version="4.0"/> <object class="AdwWindow" id="window"> <child> <object class="GtkShortcutController"> <property name="scope">managed</property> <child> <object class="GtkShortcut"> <property name="trigger">Escape</property> <property name="action">action(window.close)</property> </object> </child> <child> <object class="GtkShortcut"> <property name="trigger"><ctrl>Q</property> <property name="action">action(window.close)</property> </object> </child> </object> </child> <child> <object class="AdwToolbarView"> <child type="top"> <object class="AdwHeaderBar"/> </child> <property name="content"> <object class="GtkAspectFrame"> <child> <object class="GtkBox"> <child> <object class="TeclaView" id="view"> <property name="vexpand">true</property> </object> </child> <child> <object class="GtkBox" id="levels"> <property name="halign">center</property> <property name="spacing">6</property> <property name="orientation">horizontal</property> </object> </child> <property name="orientation">vertical</property> <property name="spacing">18</property> <property name="vexpand">true</property> </object> </child> <property name="margin-start">18</property> <property name="margin-end">18</property> <property name="margin-top">6</property> <property name="margin-bottom">18</property> </object> </property> </object> </child> <property name="default-width">800</property> <property name="default-height">400</property> </object> </interface> 0707010000005A000081A400000000000000000000000166E7F90D00000113000000000000000000000000000000000000002300000000tecla-47.0/src/tecla.gresource.xml<?xml version="1.0" encoding="UTF-8"?> <gresources> <gresource prefix="/org/gnome/tecla/"> <file preprocess="xml-stripblanks">tecla-view.ui</file> <file preprocess="xml-stripblanks">tecla-window.ui</file> <file>tecla-key.css</file> </gresource> </gresources> 0707010000005B000081A400000000000000000000000166E7F90D000003F0000000000000000000000000000000000000001600000000tecla-47.0/tecla.doap<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gnome="http://api.gnome.org/doap-extensions#" xmlns="http://usefulinc.com/ns/doap#"> <name xml:lang="en">Tecla</name> <shortdesc xml:lang="en">A keymap viewer</shortdesc> <description>Tecla is a keyboard layout viewer</description> <homepage rdf:resource="https://gitlab.gnome.org/GNOME/tecla" /> <download-page rdf:resource="http://download.gnome.org/sources/tecla/" /> <bug-database rdf:resource="https://gitlab.gnome.org/GNOME/tecla/issues" /> <category rdf:resource="http://api.gnome.org/doap-extensions#apps" /> <programming-language>C</programming-language> <maintainer> <foaf:Person> <foaf:name>Carlos Garnacho</foaf:name> <foaf:mbox rdf:resource="mailto:carlosg@gnome.org" /> <gnome:userid>carlosg</gnome:userid> </foaf:Person> </maintainer> </Project> 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!483 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor