buildsys: use QEMU's keycodemapdb again
instead of the split-out version that was last updated for QEMU 6.0.
This reverts the relevant part of 6838f03 ("bump version to 2.11.1-1")
which doesn't state a reason why the splitting was done. If something
breaks, we can still re-do it and document the reason this time.
Alternatively, it would be necessary to adapt the paths, because
keycodemapdb lives in subprojects/ rather than ui/ since QEMU commit
c53648abba ("meson: use subproject for keycodemapdb").
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
			
			
This commit is contained in:
		
							parent
							
								
									a6ddea7ef7
								
							
						
					
					
						commit
						0d9c737d61
					
				
							
								
								
									
										15
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								Makefile
									
									
									
									
									
								
							| @ -39,16 +39,14 @@ PC_BIOS_FW_PURGE_LIST_IN = \ | |||||||
| BLOB_PURGE_SED_CMDS = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "/$(FILE)/d") | BLOB_PURGE_SED_CMDS = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "/$(FILE)/d") | ||||||
| BLOB_PURGE_FILTER = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "$(FILE)") | BLOB_PURGE_FILTER = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "$(FILE)") | ||||||
| 
 | 
 | ||||||
| $(BUILDDIR): keycodemapdb | submodule | $(BUILDDIR): submodule | ||||||
| 	# check if qemu/ was used for a build | 	# check if qemu/ was used for a build | ||||||
| 	# if so, please run 'make distclean' in the submodule and try again | 	# if so, please run 'make distclean' in the submodule and try again | ||||||
| 	test ! -f $(SRCDIR)/build/config.status | 	test ! -f $(SRCDIR)/build/config.status | ||||||
| 	rm -rf $@.tmp $@ | 	rm -rf $@.tmp $@ | ||||||
| 	cp -a $(SRCDIR) $@.tmp | 	cp -a $(SRCDIR) $@.tmp | ||||||
| 	cp -a debian $@.tmp/debian | 	cp -a debian $@.tmp/debian | ||||||
| 	rm -rf $@.tmp/ui/keycodemapdb |  | ||||||
| 	rm -rf $@.tmp/roms/edk2 # packaged separately | 	rm -rf $@.tmp/roms/edk2 # packaged separately | ||||||
| 	cp -a keycodemapdb $@.tmp/ui/ |  | ||||||
| 	find $@.tmp/pc-bios -type f | grep $(BLOB_PURGE_FILTER) | xargs rm -f | 	find $@.tmp/pc-bios -type f | grep $(BLOB_PURGE_FILTER) | xargs rm -f | ||||||
| 	sed -i $(BLOB_PURGE_SED_CMDS) $@.tmp/pc-bios/meson.build | 	sed -i $(BLOB_PURGE_SED_CMDS) $@.tmp/pc-bios/meson.build | ||||||
| 	echo "git clone git://git.proxmox.com/git/pve-qemu.git\\ngit checkout $(GITVERSION)" > $@.tmp/debian/SOURCE | 	echo "git clone git://git.proxmox.com/git/pve-qemu.git\\ngit checkout $(GITVERSION)" > $@.tmp/debian/SOURCE | ||||||
| @ -76,17 +74,6 @@ dsc: | |||||||
| $(DSC): $(ORIG_SRC_TAR) $(BUILDDIR) | $(DSC): $(ORIG_SRC_TAR) $(BUILDDIR) | ||||||
| 	cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d | 	cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d | ||||||
| 
 | 
 | ||||||
| .PHONY: update |  | ||||||
| update: |  | ||||||
| 	cd $(SRCDIR) && git submodule deinit ui/keycodemapdb || true |  | ||||||
| 	rm -rf $(SRCDIR)/ui/keycodemapdb |  | ||||||
| 	mkdir $(SRCDIR)/ui/keycodemapdb |  | ||||||
| 	cd $(SRCDIR) && git submodule update --init ui/keycodemapdb |  | ||||||
| 	rm -rf keycodemapdb |  | ||||||
| 	mkdir keycodemapdb |  | ||||||
| 	cp -R $(SRCDIR)/ui/keycodemapdb/* keycodemapdb/ |  | ||||||
| 	git add keycodemapdb |  | ||||||
| 
 |  | ||||||
| .PHONY: upload | .PHONY: upload | ||||||
| upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION) | upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION) | ||||||
| upload: $(DEBS) | upload: $(DEBS) | ||||||
|  | |||||||
| @ -1,27 +0,0 @@ | |||||||
| Copyright (c) Individual contributors. |  | ||||||
| All rights reserved. |  | ||||||
| 
 |  | ||||||
| Redistribution and use in source and binary forms, with or without |  | ||||||
| modification, are permitted provided that the following conditions are met: |  | ||||||
| 
 |  | ||||||
|     1. Redistributions of source code must retain the above copyright notice, |  | ||||||
|        this list of conditions and the following disclaimer. |  | ||||||
| 
 |  | ||||||
|     2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|        notice, this list of conditions and the following disclaimer in the |  | ||||||
|        documentation and/or other materials provided with the distribution. |  | ||||||
| 
 |  | ||||||
|     3. Neither the name of PyCA Cryptography nor the names of its contributors |  | ||||||
|        may be used to endorse or promote products derived from this software |  | ||||||
|        without specific prior written permission. |  | ||||||
| 
 |  | ||||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |  | ||||||
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |  | ||||||
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |  | ||||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR |  | ||||||
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |  | ||||||
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |  | ||||||
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |  | ||||||
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |  | ||||||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| @ -1,339 +0,0 @@ | |||||||
| 		    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. |  | ||||||
| @ -1,114 +0,0 @@ | |||||||
|    Key code / scan code / key symbol mapping database |  | ||||||
|    ================================================== |  | ||||||
| 
 |  | ||||||
| This module provides a database that maps between different |  | ||||||
| key code / scan code / key symbol sets: |  | ||||||
| 
 |  | ||||||
|  - Linux evdev |  | ||||||
|  - OS-X |  | ||||||
|  - AT Set 1 |  | ||||||
|  - AT Set 2 |  | ||||||
|  - AT Set 3 |  | ||||||
|  - XT |  | ||||||
|  - Linux XT KBD driver |  | ||||||
|  - USB HID |  | ||||||
|  - Win32 |  | ||||||
|  - XWin XT |  | ||||||
|  - XKBD XT |  | ||||||
|  - Xorg Evdev |  | ||||||
|  - Xorg KBD |  | ||||||
|  - Xorg OS-X |  | ||||||
|  - XOrg Cygwin |  | ||||||
|  - RFB |  | ||||||
| 
 |  | ||||||
| Licensing |  | ||||||
| --------- |  | ||||||
| 
 |  | ||||||
| The contents of this package are dual licensed under the terms of: |  | ||||||
| 
 |  | ||||||
|  - GNU General Public License (version 2 or later) |  | ||||||
|  - 3-clause BSD License |  | ||||||
| 
 |  | ||||||
| The output files generated by keymap-gen may be distributed & used under |  | ||||||
| the terms of either of the above licenses. |  | ||||||
| 
 |  | ||||||
| Data formats |  | ||||||
| ------------ |  | ||||||
| 
 |  | ||||||
| The following output formats are possible |  | ||||||
| 
 |  | ||||||
|  - Code map |  | ||||||
| 
 |  | ||||||
|    An array mapping between key code sets values |  | ||||||
| 
 |  | ||||||
|    Indexes in the array are values from the source code set. |  | ||||||
|    Entries in the array are values from the target code set |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  - Code table |  | ||||||
| 
 |  | ||||||
|    An array listing all values in a key code set |  | ||||||
| 
 |  | ||||||
|    Indexes in the array are simply a numeric counter |  | ||||||
|    Entries in the array are values from the key code set |  | ||||||
| 
 |  | ||||||
|    The size of the array matches the total number of entries in |  | ||||||
|    the keycode database. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  - Name map |  | ||||||
| 
 |  | ||||||
|    An array mapping between key code sets values and names |  | ||||||
| 
 |  | ||||||
|    Indexes in the array are values from the source code set |  | ||||||
|    Entries in the array are names from the target code set |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  - Name table |  | ||||||
| 
 |  | ||||||
|    An array listing all names in a key code set |  | ||||||
| 
 |  | ||||||
|    Indexes in the array are simply a numeric counter |  | ||||||
|    Entries in the array are values from the key code set |  | ||||||
| 
 |  | ||||||
|    The size of the array matches the total number of entries in |  | ||||||
|    the keycode database. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Output languages |  | ||||||
| ---------------- |  | ||||||
| 
 |  | ||||||
| The tool is capable of generating data tables for the following |  | ||||||
| programming languages / environments |  | ||||||
| 
 |  | ||||||
|  - Standard C |  | ||||||
|  - GLib2 (standard C, but with GLib2 data types) |  | ||||||
|  - Python |  | ||||||
|  - Perl |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Usage |  | ||||||
| ----- |  | ||||||
| 
 |  | ||||||
| Map values from AT Set 1 to USB HID, generating tables for the |  | ||||||
| C programming language |  | ||||||
| 
 |  | ||||||
|  $ keymap-gen --lang stdc code-map data/keymaps.csv atset1 usb |  | ||||||
| 
 |  | ||||||
| Generate a tables of names for Linux key codes, OS-X key codes, |  | ||||||
| in python - equivalent array indexes map between the two sets. |  | ||||||
| A variable name override is used |  | ||||||
| 
 |  | ||||||
|  $ keymap-gen --varname linux_keycodes --lang stdc \ |  | ||||||
|               code-table data/keymaps.csv linux |  | ||||||
|  $ keymap-gen --varname osx_keycodes --lang stdc \ |  | ||||||
|               code-table data/keymaps.csv os-x |  | ||||||
| 
 |  | ||||||
| Generate a mapping from XOrg XWin values to Win32 names |  | ||||||
| 
 |  | ||||||
|  $ keymap-gen --lang perl name-map data/keymaps.csv xorgxwin win32 |  | ||||||
| 
 |  | ||||||
| Generate a table of names for Linux key codes in Perl |  | ||||||
| 
 |  | ||||||
|  $ keymap-gen --lang perl name-table data/keymaps.csv linux |  | ||||||
| 
 |  | ||||||
| @ -1,89 +0,0 @@ | |||||||
| This directory contains the raw data for mapping between different |  | ||||||
| keyboard codes. Naming if often based on the US keyboard layout, but |  | ||||||
| does not indicate the symbol actually generated by the key. |  | ||||||
| 
 |  | ||||||
| The columns currently in this data set are: |  | ||||||
| 
 |  | ||||||
| Linux |  | ||||||
| ----- |  | ||||||
| 
 |  | ||||||
| Name and value of the hardware independent keycodes used by the linux |  | ||||||
| kernel and exposed through the input subsystem. |  | ||||||
| 
 |  | ||||||
| References: linux/input.h |  | ||||||
| 
 |  | ||||||
| macOS |  | ||||||
| ----- |  | ||||||
| 
 |  | ||||||
| Low level key codes as exposed by Mac OS X/macOS. |  | ||||||
| 
 |  | ||||||
| References: Carbon/HIToolbox/Events.h |  | ||||||
| 
 |  | ||||||
| PC scan code sets |  | ||||||
| ----------------- |  | ||||||
| 
 |  | ||||||
| Scan codes for the three orignal PC keyboard generations: |  | ||||||
| 
 |  | ||||||
|  Set 1: XT |  | ||||||
|  Set 2: AT |  | ||||||
|  Set 3: PS/2 |  | ||||||
| 
 |  | ||||||
| The sets include codes for modern keys as well and not just the keys |  | ||||||
| present on those original keyboards. |  | ||||||
| 
 |  | ||||||
| References: linux/drivers/input/keyboard/atkbd.c |  | ||||||
| 
 |  | ||||||
| USB HID |  | ||||||
| ------- |  | ||||||
| 
 |  | ||||||
| Codes as specified by the HID profile in USB. |  | ||||||
| 
 |  | ||||||
| References: linux/drivers/hid/usbhid/usbkbd.c |  | ||||||
| 
 |  | ||||||
| Windows Virtual-key codes |  | ||||||
| ------------------------- |  | ||||||
| 
 |  | ||||||
| The low level, hardware independent "VKEYs" exposed by Windows. |  | ||||||
| 
 |  | ||||||
| References: mingw32/winuser.h |  | ||||||
| 
 |  | ||||||
| XWin XT |  | ||||||
| ------- |  | ||||||
| 
 |  | ||||||
| X11 keycodes generated by the XWin server. Based on the XT scan code |  | ||||||
| set. |  | ||||||
| 
 |  | ||||||
| References: xorg-server/hw/xwin/{winkeybd.c,winkeynames.h} |  | ||||||
| 
 |  | ||||||
| Xfree86 KBD XT |  | ||||||
| -------------- |  | ||||||
| 
 |  | ||||||
| X11 keycodes generated by the Xfree86 keyboard drivers. Based on the XT |  | ||||||
| scan code set. |  | ||||||
| 
 |  | ||||||
| References: xf86-input-keyboard/src/at_scancode.c |  | ||||||
| 
 |  | ||||||
| X11 keysyms |  | ||||||
| ----------- |  | ||||||
| 
 |  | ||||||
| Corresponding X11 keysym value(s) for a US keyboard layout. |  | ||||||
| 
 |  | ||||||
| WARNING: These columns represent symbols, not physical keys, and should |  | ||||||
|          be used with extreme care. |  | ||||||
| 
 |  | ||||||
| References: http://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h |  | ||||||
| 
 |  | ||||||
| HTML KeyboardEvent.code |  | ||||||
| ----------------------- |  | ||||||
| 
 |  | ||||||
| Key codes seen in the KeyboardEvent.code attribute as part of the |  | ||||||
| UI Events specification. |  | ||||||
| 
 |  | ||||||
| References: https://www.w3.org/TR/uievents-code/ |  | ||||||
| 
 |  | ||||||
| XKEYBOARD key names |  | ||||||
| ------------------- |  | ||||||
| 
 |  | ||||||
| Hardware independent key names as used in the XKEYBOARD extension. |  | ||||||
| 
 |  | ||||||
| References: /usr/share/X11/xkb/keycodes/ |  | ||||||
| @ -1,539 +0,0 @@ | |||||||
| "Linux Name","Linux Keycode","OS-X Name","OS-X Keycode","AT set1 keycode","AT set2 keycode","AT set3 keycode","USB Keycodes","Win32 Name","Win32 Keycode","Xwin XT","Xfree86 KBD XT","X11 keysym name","X11 keysym","HTML code","XKB key name","QEMU QKeyCode","Sun KBD","Apple ADB" |  | ||||||
| KEY_RESERVED,0,,0xff,,,,,,,,,,,,,unmapped,,0xff |  | ||||||
| KEY_ESC,1,Escape,0x35,0x01,0x76,0x08,41,VK_ESCAPE,0x1b,1,1,XK_Escape,0xff1b,Escape,ESC,esc,0x1d,0x35 |  | ||||||
| KEY_1,2,ANSI_1,0x12,0x02,0x16,0x16,30,VK_1,0x31,2,2,XK_1,0x0031,Digit1,AE01,1,0x1e,0x12 |  | ||||||
| KEY_1,2,ANSI_1,0x12,0x02,0x16,0x16,30,VK_1,0x31,2,2,XK_exclam,0x0021,Digit1,AE01,1,0x1e,0x12 |  | ||||||
| KEY_2,3,ANSI_2,0x13,0x03,0x1e,0x1e,31,VK_2,0x32,3,3,XK_2,0x0032,Digit2,AE02,2,0x1f,0x13 |  | ||||||
| KEY_2,3,ANSI_2,0x13,0x03,0x1e,0x1e,31,VK_2,0x32,3,3,XK_at,0x0040,Digit2,AE02,2,0x1f,0x13 |  | ||||||
| KEY_3,4,ANSI_3,0x14,0x04,0x26,0x26,32,VK_3,0x33,4,4,XK_3,0x0033,Digit3,AE03,3,0x20,0x14 |  | ||||||
| KEY_3,4,ANSI_3,0x14,0x04,0x26,0x26,32,VK_3,0x33,4,4,XK_numbersign,0x0023,Digit3,AE03,3,0x20,0x14 |  | ||||||
| KEY_4,5,ANSI_4,0x15,0x05,0x25,0x25,33,VK_4,0x34,5,5,XK_4,0x0034,Digit4,AE04,4,0x21,0x15 |  | ||||||
| KEY_4,5,ANSI_4,0x15,0x05,0x25,0x25,33,VK_4,0x34,5,5,XK_dollar,0x0024,Digit4,AE04,4,0x21,0x15 |  | ||||||
| KEY_5,6,ANSI_5,0x17,0x06,0x2e,0x2e,34,VK_5,0x35,6,6,XK_5,0x0035,Digit5,AE05,5,0x22,0x17 |  | ||||||
| KEY_5,6,ANSI_5,0x17,0x06,0x2e,0x2e,34,VK_5,0x35,6,6,XK_percent,0x0025,Digit5,AE05,5,0x22,0x17 |  | ||||||
| KEY_6,7,ANSI_6,0x16,0x07,0x36,0x36,35,VK_6,0x36,7,7,XK_6,0x0036,Digit6,AE06,6,0x23,0x16 |  | ||||||
| KEY_6,7,ANSI_6,0x16,0x07,0x36,0x36,35,VK_6,0x36,7,7,XK_asciicircum,0x005e,Digit6,AE06,6,0x23,0x16 |  | ||||||
| KEY_7,8,ANSI_7,0x1a,0x08,0x3d,0x3d,36,VK_7,0x37,8,8,XK_7,0x0037,Digit7,AE07,7,0x24,0x1a |  | ||||||
| KEY_7,8,ANSI_7,0x1a,0x08,0x3d,0x3d,36,VK_7,0x37,8,8,XK_ampersand,0x0026,Digit7,AE07,7,0x24,0x1a |  | ||||||
| KEY_8,9,ANSI_8,0x1c,0x09,0x3e,0x3e,37,VK_8,0x38,9,9,XK_8,0x0038,Digit8,AE08,8,0x25,0x1c |  | ||||||
| KEY_8,9,ANSI_8,0x1c,0x09,0x3e,0x3e,37,VK_8,0x38,9,9,XK_asterisk,0x002a,Digit8,AE08,8,0x25,0x1c |  | ||||||
| KEY_9,10,ANSI_9,0x19,0x0a,0x46,0x46,38,VK_9,0x39,10,10,XK_9,0x0039,Digit9,AE09,9,0x26,0x19 |  | ||||||
| KEY_9,10,ANSI_9,0x19,0x0a,0x46,0x46,38,VK_9,0x39,10,10,XK_parenleft,0x0028,Digit9,AE09,9,0x26,0x19 |  | ||||||
| KEY_0,11,ANSI_0,0x1d,0x0b,0x45,0x45,39,VK_0,0x30,11,11,XK_0,0x0030,Digit0,AE10,0,0x27,0x1d |  | ||||||
| KEY_0,11,ANSI_0,0x1d,0x0b,0x45,0x45,39,VK_0,0x30,11,11,XK_parenright,0x0029,Digit0,AE10,0,0x27,0x1d |  | ||||||
| KEY_MINUS,12,ANSI_Minus,0x1b,0x0c,0x4e,0x4e,45,VK_OEM_MINUS,0xbd,12,12,XK_minus,0x002d,Minus,AE11,minus,0x28,0x1b |  | ||||||
| KEY_MINUS,12,ANSI_Minus,0x1b,0x0c,0x4e,0x4e,45,VK_OEM_MINUS,0xbd,12,12,XK_underscore,0x005f,Minus,AE11,minus,0x28,0x1b |  | ||||||
| KEY_EQUAL,13,ANSI_Equal,0x18,0x0d,0x55,0x55,46,VK_OEM_PLUS,0xbb,13,13,XK_equal,0x003d,Equal,AE12,equal,0x29,0x18 |  | ||||||
| KEY_EQUAL,13,ANSI_Equal,0x18,0x0d,0x55,0x55,46,VK_OEM_PLUS,0xbb,13,13,XK_plus,0x002b,Equal,AE12,equal,0x29,0x18 |  | ||||||
| KEY_BACKSPACE,14,Delete,0x33,0x0e,0x66,0x66,42,VK_BACK,0x08,14,14,XK_BackSpace,0xff08,Backspace,BKSP,backspace,0x2b,0x33 |  | ||||||
| KEY_TAB,15,Tab,0x30,0x0f,0x0d,0x0d,43,VK_TAB,0x09,15,15,XK_Tab,0xff09,Tab,TAB,tab,0x35,0x30 |  | ||||||
| KEY_Q,16,ANSI_Q,0xc,0x10,0x15,0x15,20,VK_Q,0x51,16,16,XK_Q,0x0051,KeyQ,AD01,q,0x36,0xc |  | ||||||
| KEY_Q,16,ANSI_Q,0xc,0x10,0x15,0x15,20,VK_Q,0x51,16,16,XK_q,0x0071,KeyQ,AD01,q,0x36,0xc |  | ||||||
| KEY_W,17,ANSI_W,0xd,0x11,0x1d,0x1d,26,VK_W,0x57,17,17,XK_W,0x0057,KeyW,AD02,w,0x37,0xd |  | ||||||
| KEY_W,17,ANSI_W,0xd,0x11,0x1d,0x1d,26,VK_W,0x57,17,17,XK_w,0x0077,KeyW,AD02,w,0x37,0xd |  | ||||||
| KEY_E,18,ANSI_E,0xe,0x12,0x24,0x24,8,VK_E,0x45,18,18,XK_E,0x0045,KeyE,AD03,e,0x38,0xe |  | ||||||
| KEY_E,18,ANSI_E,0xe,0x12,0x24,0x24,8,VK_E,0x45,18,18,XK_e,0x0065,KeyE,AD03,e,0x38,0xe |  | ||||||
| KEY_R,19,ANSI_R,0xf,0x13,0x2d,0x2d,21,VK_R,0x52,19,19,XK_R,0x0052,KeyR,AD04,r,0x39,0xf |  | ||||||
| KEY_R,19,ANSI_R,0xf,0x13,0x2d,0x2d,21,VK_R,0x52,19,19,XK_r,0x0072,KeyR,AD04,r,0x39,0xf |  | ||||||
| KEY_T,20,ANSI_T,0x11,0x14,0x2c,0x2c,23,VK_T,0x54,20,20,XK_T,0x0054,KeyT,AD05,t,0x3a,0x11 |  | ||||||
| KEY_T,20,ANSI_T,0x11,0x14,0x2c,0x2c,23,VK_T,0x54,20,20,XK_t,0x0074,KeyT,AD05,t,0x3a,0x11 |  | ||||||
| KEY_Y,21,ANSI_Y,0x10,0x15,0x35,0x35,28,VK_Y,0x59,21,21,XK_Y,0x0059,KeyY,AD06,y,0x3b,0x10 |  | ||||||
| KEY_Y,21,ANSI_Y,0x10,0x15,0x35,0x35,28,VK_Y,0x59,21,21,XK_y,0x0079,KeyY,AD06,y,0x3b,0x10 |  | ||||||
| KEY_U,22,ANSI_U,0x20,0x16,0x3c,0x3c,24,VK_U,0x55,22,22,XK_U,0x0055,KeyU,AD07,u,0x3c,0x20 |  | ||||||
| KEY_U,22,ANSI_U,0x20,0x16,0x3c,0x3c,24,VK_U,0x55,22,22,XK_u,0x0075,KeyU,AD07,u,0x3c,0x20 |  | ||||||
| KEY_I,23,ANSI_I,0x22,0x17,0x43,0x43,12,VK_I,0x49,23,23,XK_I,0x0049,KeyI,AD08,i,0x3d,0x22 |  | ||||||
| KEY_I,23,ANSI_I,0x22,0x17,0x43,0x43,12,VK_I,0x49,23,23,XK_i,0x0069,KeyI,AD08,i,0x3d,0x22 |  | ||||||
| KEY_O,24,ANSI_O,0x1f,0x18,0x44,0x44,18,VK_O,0x4f,24,24,XK_O,0x004f,KeyO,AD09,o,0x3e,0x1f |  | ||||||
| KEY_O,24,ANSI_O,0x1f,0x18,0x44,0x44,18,VK_O,0x4f,24,24,XK_o,0x006f,KeyO,AD09,o,0x3e,0x1f |  | ||||||
| KEY_P,25,ANSI_P,0x23,0x19,0x4d,0x4d,19,VK_P,0x50,25,25,XK_P,0x0050,KeyP,AD10,p,0x3f,0x23 |  | ||||||
| KEY_P,25,ANSI_P,0x23,0x19,0x4d,0x4d,19,VK_P,0x50,25,25,XK_p,0x0070,KeyP,AD10,p,0x3f,0x23 |  | ||||||
| KEY_LEFTBRACE,26,ANSI_LeftBracket,0x21,0x1a,0x54,0x54,47,VK_OEM_4,0xdb,26,26,XK_bracketleft,0x005b,BracketLeft,AD11,bracket_left,0x40,0x21 |  | ||||||
| KEY_LEFTBRACE,26,ANSI_LeftBracket,0x21,0x1a,0x54,0x54,47,VK_OEM_4,0xdb,26,26,XK_braceleft,0x007b,BracketLeft,AD11,bracket_left,0x40,0x21 |  | ||||||
| KEY_RIGHTBRACE,27,ANSI_RightBracket,0x1e,0x1b,0x5b,0x5b,48,VK_OEM_6,0xdd,27,27,XK_bracketright,0x005d,BracketRight,AD12,bracket_right,0x41,0x1e |  | ||||||
| KEY_RIGHTBRACE,27,ANSI_RightBracket,0x1e,0x1b,0x5b,0x5b,48,VK_OEM_6,0xdd,27,27,XK_braceright,0x007d,BracketRight,AD12,bracket_right,0x41,0x1e |  | ||||||
| KEY_ENTER,28,Return,0x24,0x1c,0x5a,0x5a,40,VK_RETURN,0x0d,28,28,XK_Return,0xff0d,Enter,RTRN,ret,0x59,0x24 |  | ||||||
| KEY_LEFTCTRL,29,Control,0x3b,0x1d,0x14,0x11,224,VK_LCONTROL,0xa2,29,29,XK_Control_L,0xffe3,ControlLeft,LCTL,ctrl,0x4c,0x36 |  | ||||||
| KEY_LEFTCTRL,29,Control,0x3b,0x1d,0x14,0x11,224,VK_CONTROL,0x11,29,29,XK_Control_L,0xffe3,ControlLeft,LCTL,ctrl,0x4c,0x36 |  | ||||||
| KEY_A,30,ANSI_A,0x0,0x1e,0x1c,0x1c,4,VK_A,0x41,30,30,XK_A,0x0041,KeyA,AC01,a,0x4d,0x0 |  | ||||||
| KEY_A,30,ANSI_A,0x0,0x1e,0x1c,0x1c,4,VK_A,0x41,30,30,XK_a,0x0061,KeyA,AC01,a,0x4d,0x0 |  | ||||||
| KEY_S,31,ANSI_S,0x1,0x1f,0x1b,0x1b,22,VK_S,0x53,31,31,XK_S,0x0053,KeyS,AC02,s,0x4e,0x1 |  | ||||||
| KEY_S,31,ANSI_S,0x1,0x1f,0x1b,0x1b,22,VK_S,0x53,31,31,XK_s,0x0073,KeyS,AC02,s,0x4e,0x1 |  | ||||||
| KEY_D,32,ANSI_D,0x2,0x20,0x23,0x23,7,VK_D,0x44,32,32,XK_D,0x0044,KeyD,AC03,d,0x4f,0x2 |  | ||||||
| KEY_D,32,ANSI_D,0x2,0x20,0x23,0x23,7,VK_D,0x44,32,32,XK_d,0x0064,KeyD,AC03,d,0x4f,0x2 |  | ||||||
| KEY_F,33,ANSI_F,0x3,0x21,0x2b,0x2b,9,VK_F,0x46,33,33,XK_F,0x0046,KeyF,AC04,f,0x50,0x3 |  | ||||||
| KEY_F,33,ANSI_F,0x3,0x21,0x2b,0x2b,9,VK_F,0x46,33,33,XK_f,0x0066,KeyF,AC04,f,0x50,0x3 |  | ||||||
| KEY_G,34,ANSI_G,0x5,0x22,0x34,0x34,10,VK_G,0x47,34,34,XK_G,0x0047,KeyG,AC05,g,0x51,0x5 |  | ||||||
| KEY_G,34,ANSI_G,0x5,0x22,0x34,0x34,10,VK_G,0x47,34,34,XK_g,0x0067,KeyG,AC05,g,0x51,0x5 |  | ||||||
| KEY_H,35,ANSI_H,0x4,0x23,0x33,0x33,11,VK_H,0x48,35,35,XK_H,0x0048,KeyH,AC06,h,0x52,0x4 |  | ||||||
| KEY_H,35,ANSI_H,0x4,0x23,0x33,0x33,11,VK_H,0x48,35,35,XK_h,0x0068,KeyH,AC06,h,0x52,0x4 |  | ||||||
| KEY_J,36,ANSI_J,0x26,0x24,0x3b,0x3b,13,VK_J,0x4a,36,36,XK_J,0x004a,KeyJ,AC07,j,0x53,0x26 |  | ||||||
| KEY_J,36,ANSI_J,0x26,0x24,0x3b,0x3b,13,VK_J,0x4a,36,36,XK_j,0x006a,KeyJ,AC07,j,0x53,0x26 |  | ||||||
| KEY_K,37,ANSI_K,0x28,0x25,0x42,0x42,14,VK_K,0x4b,37,37,XK_K,0x004b,KeyK,AC08,k,0x54,0x28 |  | ||||||
| KEY_K,37,ANSI_K,0x28,0x25,0x42,0x42,14,VK_K,0x4b,37,37,XK_k,0x006b,KeyK,AC08,k,0x54,0x28 |  | ||||||
| KEY_L,38,ANSI_L,0x25,0x26,0x4b,0x4b,15,VK_L,0x4c,38,38,XK_L,0x004c,KeyL,AC09,l,0x55,0x25 |  | ||||||
| KEY_L,38,ANSI_L,0x25,0x26,0x4b,0x4b,15,VK_L,0x4c,38,38,XK_l,0x006c,KeyL,AC09,l,0x55,0x25 |  | ||||||
| KEY_SEMICOLON,39,ANSI_Semicolon,0x29,0x27,0x4c,0x4c,51,VK_OEM_1,0xba,39,39,XK_semicolon,0x003b,Semicolon,AC10,semicolon,0x56,0x29 |  | ||||||
| KEY_SEMICOLON,39,ANSI_Semicolon,0x29,0x27,0x4c,0x4c,51,VK_OEM_1,0xba,39,39,XK_colon,0x003a,Semicolon,AC10,semicolon,0x56,0x29 |  | ||||||
| KEY_APOSTROPHE,40,ANSI_Quote,0x27,0x28,0x52,0x52,52,VK_OEM_7,0xde,40,40,XK_apostrophe,0x0027,Quote,AC11,apostrophe,0x57,0x27 |  | ||||||
| KEY_APOSTROPHE,40,ANSI_Quote,0x27,0x28,0x52,0x52,52,VK_OEM_7,0xde,40,40,XK_quotedbl,0x0022,Quote,AC11,apostrophe,0x57,0x27 |  | ||||||
| KEY_GRAVE,41,ANSI_Grave,0x32,0x29,0x0e,0x0e,53,VK_OEM_3,0xc0,41,41,XK_grave,0x0060,Backquote,TLDE,grave_accent,0x2a,0x32 |  | ||||||
| KEY_GRAVE,41,ANSI_Grave,0x32,0x29,0x0e,0x0e,53,VK_OEM_3,0xc0,41,41,XK_grave,0x0060,Backquote,AB00,grave_accent,0x2a,0x32 |  | ||||||
| KEY_GRAVE,41,ANSI_Grave,0x32,0x29,0x0e,0x0e,53,VK_OEM_3,0xc0,41,41,XK_asciitilde,0x007e,Backquote,TLDE,grave_accent,0x2a,0x32 |  | ||||||
| KEY_GRAVE,41,ANSI_Grave,0x32,0x29,0x0e,0x0e,53,VK_OEM_3,0xc0,41,41,XK_asciitilde,0x007e,Backquote,AB00,grave_accent,0x2a,0x32 |  | ||||||
| KEY_SHIFT,42,Shift,0x38,0x2a,0x12,0x12,225,VK_SHIFT,0x10,42,42,XK_Shift_L,0xffe1,ShiftLeft,LFSH,shift,0x63,0x38 |  | ||||||
| KEY_LEFTSHIFT,42,Shift,0x38,0x2a,0x12,0x12,225,VK_LSHIFT,0xa0,42,42,XK_Shift_L,0xffe1,ShiftLeft,LFSH,shift,0x63,0x38 |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,49,VK_OEM_5,0xdc,43,43,XK_backslash,0x005c,Backslash,BKSL,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,49,VK_OEM_5,0xdc,43,43,XK_backslash,0x005c,Backslash,AC12,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,49,VK_OEM_5,0xdc,43,43,XK_bar,0x007c,Backslash,BKSL,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,49,VK_OEM_5,0xdc,43,43,XK_bar,0x007c,Backslash,AC12,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,50,VK_OEM_5,0xdc,43,43,XK_backslash,0x005c,Backslash,BKSL,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,50,VK_OEM_5,0xdc,43,43,XK_backslash,0x005c,Backslash,AC12,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,50,VK_OEM_5,0xdc,43,43,XK_bar,0x007c,Backslash,BKSL,backslash,0x58,0x2a |  | ||||||
| KEY_BACKSLASH,43,ANSI_Backslash,0x2a,0x2b,0x5d,0x5c,50,VK_OEM_5,0xdc,43,43,XK_bar,0x007c,Backslash,AC12,backslash,0x58,0x2a |  | ||||||
| KEY_Z,44,ANSI_Z,0x6,0x2c,0x1a,0x1a,29,VK_Z,0x5a,44,44,XK_Z,0x005a,KeyZ,AB01,z,0x64,0x6 |  | ||||||
| KEY_Z,44,ANSI_Z,0x6,0x2c,0x1a,0x1a,29,VK_Z,0x5a,44,44,XK_z,0x007a,KeyZ,AB01,z,0x64,0x6 |  | ||||||
| KEY_X,45,ANSI_X,0x7,0x2d,0x22,0x22,27,VK_X,0x58,45,45,XK_X,0x0058,KeyX,AB02,x,0x65,0x7 |  | ||||||
| KEY_X,45,ANSI_X,0x7,0x2d,0x22,0x22,27,VK_X,0x58,45,45,XK_x,0x0078,KeyX,AB02,x,0x65,0x7 |  | ||||||
| KEY_C,46,ANSI_C,0x8,0x2e,0x21,0x21,6,VK_C,0x43,46,46,XK_C,0x0043,KeyC,AB03,c,0x66,0x8 |  | ||||||
| KEY_C,46,ANSI_C,0x8,0x2e,0x21,0x21,6,VK_C,0x43,46,46,XK_c,0x0063,KeyC,AB03,c,0x66,0x8 |  | ||||||
| KEY_V,47,ANSI_V,0x9,0x2f,0x2a,0x2a,25,VK_V,0x56,47,47,XK_V,0x0056,KeyV,AB04,v,0x67,0x9 |  | ||||||
| KEY_V,47,ANSI_V,0x9,0x2f,0x2a,0x2a,25,VK_V,0x56,47,47,XK_v,0x0076,KeyV,AB04,v,0x67,0x9 |  | ||||||
| KEY_B,48,ANSI_B,0xb,0x30,0x32,0x32,5,VK_B,0x42,48,48,XK_B,0x0042,KeyB,AB05,b,0x68,0xb |  | ||||||
| KEY_B,48,ANSI_B,0xb,0x30,0x32,0x32,5,VK_B,0x42,48,48,XK_b,0x0062,KeyB,AB05,b,0x68,0xb |  | ||||||
| KEY_N,49,ANSI_N,0x2d,0x31,0x31,0x31,17,VK_N,0x4e,49,49,XK_N,0x004e,KeyN,AB06,n,0x69,0x2d |  | ||||||
| KEY_N,49,ANSI_N,0x2d,0x31,0x31,0x31,17,VK_N,0x4e,49,49,XK_n,0x006e,KeyN,AB06,n,0x69,0x2d |  | ||||||
| KEY_M,50,ANSI_M,0x2e,0x32,0x3a,0x3a,16,VK_M,0x4d,50,50,XK_M,0x004d,KeyM,AB07,m,0x6a,0x2e |  | ||||||
| KEY_M,50,ANSI_M,0x2e,0x32,0x3a,0x3a,16,VK_M,0x4d,50,50,XK_m,0x006d,KeyM,AB07,m,0x6a,0x2e |  | ||||||
| KEY_COMMA,51,ANSI_Comma,0x2b,0x33,0x41,0x41,54,VK_OEM_COMMA,0xbc,51,51,XK_comma,0x002c,Comma,AB08,comma,0x6b,0x2b |  | ||||||
| KEY_COMMA,51,ANSI_Comma,0x2b,0x33,0x41,0x41,54,VK_OEM_COMMA,0xbc,51,51,XK_less,0x003c,Comma,AB08,comma,0x6b,0x2b |  | ||||||
| KEY_DOT,52,ANSI_Period,0x2f,0x34,0x49,0x49,55,VK_OEM_PERIOD,0xbe,52,52,XK_period,0x002e,Period,AB09,dot,0x6c,0x2f |  | ||||||
| KEY_DOT,52,ANSI_Period,0x2f,0x34,0x49,0x49,55,VK_OEM_PERIOD,0xbe,52,52,XK_greater,0x003e,Period,AB09,dot,0x6c,0x2f |  | ||||||
| KEY_SLASH,53,ANSI_Slash,0x2c,0x35,0x4a,0x4a,56,VK_OEM_2,0xbf,53,53,XK_slash,0x002f,Slash,AB10,slash,0x6d,0x2c |  | ||||||
| KEY_SLASH,53,ANSI_Slash,0x2c,0x35,0x4a,0x4a,56,VK_OEM_2,0xbf,53,53,XK_question,0x003f,Slash,AB10,slash,0x6d,0x2c |  | ||||||
| KEY_RIGHTSHIFT,54,RightShift,0x3c,0x36,0x59,0x59,229,VK_RSHIFT,0xa1,54,54,XK_Shift_R,0xffe2,ShiftRight,RTSH,shift_r,0x6e,0x7b |  | ||||||
| KEY_KPASTERISK,55,ANSI_KeypadMultiply,0x43,0x37,0x7c,0x7e,85,VK_MULTIPLY,0x6a,55,55,XK_multiply,0x00d7,NumpadMultiply,KPMU,asterisk,0x2f,0x43 |  | ||||||
| KEY_KPASTERISK,55,ANSI_KeypadMultiply,0x43,0x37,0x7c,0x7e,85,VK_MULTIPLY,0x6a,55,55,XK_multiply,0x00d7,NumpadMultiply,KPMU,kp_multiply,0x2f,0x43 |  | ||||||
| KEY_LEFTALT,56,Option,0x3a,0x38,0x11,0x19,226,VK_LMENU,0xa4,56,56,XK_Alt_L,0xffe9,AltLeft,LALT,alt,0x13,0x3a |  | ||||||
| KEY_LEFTALT,56,Option,0x3a,0x38,0x11,0x19,226,VK_MENU,0x12,56,56,XK_Alt_L,0xffe9,AltLeft,LALT,alt,0x13,0x3a |  | ||||||
| KEY_SPACE,57,Space,0x31,0x39,0x29,0x29,44,VK_SPACE,0x20,57,57,XK_space,0x0020,Space,SPCE,spc,0x79,0x31 |  | ||||||
| KEY_CAPSLOCK,58,CapsLock,0x39,0x3a,0x58,0x14,57,VK_CAPITAL,0x14,58,58,XK_Caps_Lock,0xffe5,CapsLock,CAPS,caps_lock,0x77,0x39 |  | ||||||
| KEY_F1,59,F1,0x7a,0x3b,0x05,0x07,58,VK_F1,0x70,59,59,XK_F1,0xffbe,F1,FK01,f1,0x05,0x7a |  | ||||||
| KEY_F2,60,F2,0x78,0x3c,0x06,0x0f,59,VK_F2,0x71,60,60,XK_F2,0xffbf,F2,FK02,f2,0x06,0x78 |  | ||||||
| KEY_F3,61,F3,0x63,0x3d,0x04,0x17,60,VK_F3,0x72,61,61,XK_F3,0xffc0,F3,FK03,f3,0x08,0x63 |  | ||||||
| KEY_F4,62,F4,0x76,0x3e,0x0c,0x1f,61,VK_F4,0x73,62,62,XK_F4,0xffc1,F4,FK04,f4,0x0a,0x76 |  | ||||||
| KEY_F5,63,F5,0x60,0x3f,0x03,0x27,62,VK_F5,0x74,63,63,XK_F5,0xffc2,F5,FK05,f5,0x0c,0x60 |  | ||||||
| KEY_F6,64,F6,0x61,0x40,0x0b,0x2f,63,VK_F6,0x75,64,64,XK_F6,0xffc3,F6,FK06,f6,0x0e,0x61 |  | ||||||
| KEY_F7,65,F7,0x62,0x41,0x83,0x37,64,VK_F7,0x76,65,65,XK_F7,0xffc4,F7,FK07,f7,0x10,0x62 |  | ||||||
| KEY_F8,66,F8,0x64,0x42,0x0a,0x3f,65,VK_F8,0x77,66,66,XK_F8,0xffc5,F8,FK08,f8,0x11,0x64 |  | ||||||
| KEY_F9,67,F9,0x65,0x43,0x01,0x47,66,VK_F9,0x78,67,67,XK_F9,0xffc6,F9,FK09,f9,0x12,0x65 |  | ||||||
| KEY_F10,68,F10,0x6d,0x44,0x09,0x4f,67,VK_F10,0x79,68,68,XK_F10,0xffc7,F10,FK10,f10,0x07,0x6d |  | ||||||
| KEY_NUMLOCK,69,ANSI_KeypadClear,0x47,0x45,0x77,0x76,83,VK_NUMLOCK,0x90,69,69,XK_Num_Lock,0xff7f,NumLock,NMLK,num_lock,0x62,0x47 |  | ||||||
| KEY_SCROLLLOCK,70,,,0x46,0x7e,0x5f,71,VK_SCROLL,0x91,70,70,XK_Scroll_Lock,0xff14,ScrollLock,SCLK,scroll_lock,0x17,0x6b |  | ||||||
| KEY_KP7,71,ANSI_Keypad7,0x59,0x47,0x6c,0x6c,95,VK_NUMPAD7,0x67,71,71,XK_KP_7,0xffb7,Numpad7,KP7,kp_7,0x44,0x59 |  | ||||||
| KEY_KP8,72,ANSI_Keypad8,0x5b,0x48,0x75,0x75,96,VK_NUMPAD8,0x68,72,72,XK_KP_8,0xffb8,Numpad8,KP8,kp_8,0x45,0x5b |  | ||||||
| KEY_KP9,73,ANSI_Keypad9,0x5c,0x49,0x7d,0x7d,97,VK_NUMPAD9,0x69,73,73,XK_KP_9,0xffb9,Numpad9,KP9,kp_9,0x46,0x5c |  | ||||||
| KEY_KPMINUS,74,ANSI_KeypadMinus,0x4e,0x4a,0x7b,0x4e,86,VK_SUBTRACT,0x6d,74,74,XK_KP_Subtract,0xffad,NumpadSubtract,KPSU,kp_subtract,0x47,0x4e |  | ||||||
| KEY_KP4,75,ANSI_Keypad4,0x56,0x4b,0x6b,0x6b,92,VK_NUMPAD4,0x64,75,75,XK_KP_4,0xffb4,Numpad4,KP4,kp_4,0x5b,0x56 |  | ||||||
| KEY_KP5,76,ANSI_Keypad5,0x57,0x4c,0x73,0x73,93,VK_NUMPAD5,0x65,76,76,XK_KP_5,0xffb5,Numpad5,KP5,kp_5,0x5c,0x57 |  | ||||||
| KEY_KP6,77,ANSI_Keypad6,0x58,0x4d,0x74,0x74,94,VK_NUMPAD6,0x66,77,77,XK_KP_6,0xffb6,Numpad6,KP6,kp_6,0x5d,0x58 |  | ||||||
| KEY_KPPLUS,78,ANSI_KeypadPlus,0x45,0x4e,0x79,0x7c,87,VK_ADD,0x6b,78,78,XK_KP_Add,0xffab,NumpadAdd,KPAD,kp_add,0x7d,0x45 |  | ||||||
| KEY_KP1,79,ANSI_Keypad1,0x53,0x4f,0x69,0x69,89,VK_NUMPAD1,0x61,79,79,XK_KP_1,0xffb1,Numpad1,KP1,kp_1,0x70,0x53 |  | ||||||
| KEY_KP2,80,ANSI_Keypad2,0x54,0x50,0x72,0x72,90,VK_NUMPAD2,0x62,80,80,XK_KP_2,0xffb2,Numpad2,KP2,kp_2,0x71,0x54 |  | ||||||
| KEY_KP3,81,ANSI_Keypad3,0x55,0x51,0x7a,0x7a,91,VK_NUMPAD3,0x63,81,81,XK_KP_3,0xffb3,Numpad3,KP3,kp_3,0x72,0x55 |  | ||||||
| KEY_KP0,82,ANSI_Keypad0,0x52,0x52,0x70,0x70,98,VK_NUMPAD0,0x60,82,82,XK_KP_0,0xffb0,Numpad0,KP0,kp_0,0x5e,0x52 |  | ||||||
| KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,0x53,0x71,0x71,99,VK_DECIMAL,0x6e,83,83,XK_KP_Decimal,0xffae,NumpadDecimal,KPDL,kp_decimal,0x32,0x41 |  | ||||||
| KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,0x53,0x71,0x71,99,VK_DECIMAL,0x6e,83,83,XK_KP_Decimal,0xffae,NumpadDecimal,KPDC,kp_decimal,0x32,0x41 |  | ||||||
| ,84,,,0x54,,,,,,,,,,,,,, |  | ||||||
| KEY_ZENKAKUHANKAKU,85,,,0x76,0x5f,,148,,,,,,,Lang5,HZTG,,, |  | ||||||
| KEY_102ND,86,,,0x56,0x61,0x13,100,VK_OEM_102,0xe2,86,86,,,IntlBackslash,LSGT,less,0x7c, |  | ||||||
| KEY_F11,87,F11,0x67,0x57,0x78,0x56,68,VK_F11,0x7a,87,87,XK_F11,0xffc8,F11,FK11,f11,0x09,0x67 |  | ||||||
| KEY_F12,88,F12,0x6f,0x58,0x07,0x5e,69,VK_F12,0x7b,88,88,XK_F12,0xffc9,F12,FK12,f12,0x0b,0x6f |  | ||||||
| KEY_RO,89,JIS_Underscore,0x5e,0x73,0x51,,135,,,,,,,IntlRo,AB11,ro,, |  | ||||||
| KEY_KATAKANA,90,,,0x78,0x63,,146,VK_KANA,0x15,,,,,Katakana,KATA,,, |  | ||||||
| KEY_KATAKANA,90,,,0x78,0x63,,146,VK_KANA,0x15,,,,,Lang3,KATA,,, |  | ||||||
| KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,,,Hiragana,HIRA,hiragana,, |  | ||||||
| KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,,,Lang4,HIRA,hiragana,, |  | ||||||
| KEY_HENKAN,92,,,0x79,0x64,0x86,138,,,,,,,Convert,HENK,henkan,, |  | ||||||
| KEY_KATAKANAHIRAGANA,93,,,0x70,0x13,0x87,136,,,0xc8,0xc8,,,KanaMode,HKTG,katakanahiragana,, |  | ||||||
| KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,,,,,,,NonConvert,NFER,muhenkan,, |  | ||||||
| KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,,,,,,,NonConvert,MUHE,muhenkan,, |  | ||||||
| KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,KPSP,,, |  | ||||||
| KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,JPCM,,, |  | ||||||
| KEY_KPENTER,96,ANSI_KeypadEnter,0x4c,0xe01c,0xe05a,0x79,88,,,0x64,0x64,XK_KP_Enter,0xff8d,NumpadEnter,KPEN,kp_enter,0x5a,0x4c |  | ||||||
| KEY_RIGHTCTRL,97,RightControl,0x3e,0xe01d,0xe014,0x58,228,VK_RCONTROL,0xa3,0x65,0x65,XK_Control_R,0xffe4,ControlRight,RCTL,ctrl_r,0x4c,0x7d |  | ||||||
| KEY_KPSLASH,98,ANSI_KeypadDivide,0x4b,0xe035,0xe04a,0x4a,84,VK_DIVIDE,0x6f,0x68,0x68,XK_KP_Divide,0xffaf,NumpadDivide,KPDV,kp_divide,0x2e,0x4b |  | ||||||
| KEY_SYSRQ,99,,,0x54,0x7f,0x57,70,VK_SNAPSHOT,0x2c,0x67,0x67,XK_Sys_Req,0xff15,PrintScreen,PRSC,print,0x16,0x69 |  | ||||||
| KEY_SYSRQ,99,,,0x54,0x7f,0x57,70,VK_SNAPSHOT,0x2c,0x67,0x67,XK_Sys_Req,0xff15,PrintScreen,SYRQ,sysrq,0x16,0x69 |  | ||||||
| KEY_RIGHTALT,100,RightOption,0x3d,0xe038,0xe011,0x39,230,VK_RMENU,0xa5,0x69,0x69,XK_Alt_R,0xffea,AltRight,ALGR,alt_r,0x0d,0x7c |  | ||||||
| KEY_RIGHTALT,100,RightOption,0x3d,0xe038,0xe011,0x39,230,VK_RMENU,0xa5,0x69,0x69,XK_Alt_R,0xffea,AltRight,RALT,alt_r,0x0d,0x7c |  | ||||||
| KEY_LINEFEED,101,,,0x5b,,,,,,,,,,,LNFD,lf,0x6f, |  | ||||||
| KEY_HOME,102,Home,0x73,0xe047,0xe06c,0x6e,74,VK_HOME,0x24,0x59,0x59,XK_Home,0xff50,Home,HOME,home,0x34,0x73 |  | ||||||
| KEY_UP,103,UpArrow,0x7e,0xe048,0xe075,0x63,82,VK_UP,0x26,0x5a,0x5a,XK_Up,0xff52,ArrowUp,UP,up,0x14,0x3e |  | ||||||
| KEY_PAGEUP,104,PageUp,0x74,0xe049,0xe07d,0x6f,75,VK_PRIOR,0x21,0x5b,0x5b,XK_Page_Up,0xff55,PageUp,PGUP,pgup,0x60,0x74 |  | ||||||
| KEY_LEFT,105,LeftArrow,0x7b,0xe04b,0xe06b,0x61,80,VK_LEFT,0x25,0x5c,0x5c,XK_Left,0xff51,ArrowLeft,LEFT,left,0x18,0x3b |  | ||||||
| KEY_RIGHT,106,RightArrow,0x7c,0xe04d,0xe074,0x6a,79,VK_RIGHT,0x27,0x5e,0x5e,XK_Right,0xff53,ArrowRight,RGHT,right,0x1c,0x3c |  | ||||||
| KEY_END,107,End,0x77,0xe04f,0xe069,0x65,77,VK_END,0x23,0x5f,0x5f,XK_End,0xff57,End,END,end,0x4a,0x77 |  | ||||||
| KEY_DOWN,108,DownArrow,0x7d,0xe050,0xe072,0x60,81,VK_DOWN,0x28,0x60,0x60,XK_Down,0xff54,ArrowDown,DOWN,down,0x1b,0x3d |  | ||||||
| KEY_PAGEDOWN,109,PageDown,0x79,0xe051,0xe07a,0x6d,78,VK_NEXT,0x22,0x61,0x61,XK_Page_Down,0xff56,PageDown,PGDN,pgdn,0x7b,0x79 |  | ||||||
| KEY_INSERT,110,,,0xe052,0xe070,0x67,73,VK_INSERT,0x2d,0x62,0x62,XK_Insert,0xff63,Insert,INS,insert,0x2c,0x72 |  | ||||||
| KEY_DELETE,111,ForwardDelete,0x75,0xe053,0xe071,0x64,76,VK_DELETE,0x2e,0x63,0x63,XK_Delete,0xffff,Delete,DEL,delete,0x42,0x75 |  | ||||||
| KEY_DELETE,111,ForwardDelete,0x75,0xe053,0xe071,0x64,76,VK_DELETE,0x2e,0x63,0x63,XK_Delete,0xffff,Delete,DELE,,0x42,0x75 |  | ||||||
| KEY_MACRO,112,,,0xe06f,0xe06f,0x8e,,,,,,,,,I120,,, |  | ||||||
| KEY_MUTE,113,Mute,0x4a,0xe020,0xe023,0x9c,127,VK_VOLUME_MUTE,0xad,,,,,AudioVolumeMute,MUTE,audiomute,, |  | ||||||
| KEY_MUTE,113,Mute,0x4a,0xe020,0xe023,0x9c,239,VK_VOLUME_MUTE,0xad,,,,,AudioVolumeMute,MUTE,audiomute,, |  | ||||||
| KEY_VOLUMEDOWN,114,VolumeDown,0x49,0xe02e,0xe021,0x9d,129,VK_VOLUME_DOWN,0xae,,,,,AudioVolumeDown,VOL-,volumedown,, |  | ||||||
| KEY_VOLUMEDOWN,114,VolumeDown,0x49,0xe02e,0xe021,0x9d,238,VK_VOLUME_DOWN,0xae,,,,,AudioVolumeDown,VOL-,volumedown,, |  | ||||||
| KEY_VOLUMEUP,115,VolumeUp,0x48,0xe030,0xe032,0x95,128,VK_VOLUME_UP,0xaf,,,,,AudioVolumeUp,VOL+,volumeup,, |  | ||||||
| KEY_VOLUMEUP,115,VolumeUp,0x48,0xe030,0xe032,0x95,237,VK_VOLUME_UP,0xaf,,,,,AudioVolumeUp,VOL+,volumeup,, |  | ||||||
| KEY_POWER,116,,,0xe05e,0xe037,,102,,,,,,,Power,POWR,power,,0x7f7f |  | ||||||
| KEY_KPEQUAL,117,ANSI_KeypadEquals,0x51,0x59,0x0f,,103,,,0x76,0x76,XK_KP_Equal,0xffbd,NumpadEqual,KPEQ,kp_equals,0x2d,0x51 |  | ||||||
| KEY_KPPLUSMINUS,118,,,0xe04e,0xe079,,,,,,,,,,I126,,, |  | ||||||
| KEY_PAUSE,119,,,0xe046,0xe077,0x62,72,VK_PAUSE,0x013,0x66,0x66,XK_Pause,0xff13,Pause,PAUS,pause,0x15,0x71 |  | ||||||
| KEY_SCALE,120,,,0xe00b,,,,,,,,,,,I128,,, |  | ||||||
| KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,KPCO,kp_comma,, |  | ||||||
| KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,I129,,, |  | ||||||
| KEY_HANGEUL,122,JIS_Kana,0x68,0x72,,,144,VK_HANGEUL,0x15,,0x71,,,Lang1,HNGL,,, |  | ||||||
| KEY_HANJA,123,JIS_Eisu,0x66,0x71,,,145,VK_HANJA,0x19,,0x72,,,Lang2,HJCV,,, |  | ||||||
| KEY_YEN,124,JIS_Yen,0x5d,0x7d,0x6a,0x5d,137,,,0x7d,0x7d,,,IntlYen,AE13,yen,, |  | ||||||
| KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LMTA,meta_l,0x78,0x37 |  | ||||||
| KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LWIN,meta_l,0x78,0x37 |  | ||||||
| KEY_RIGHTMETA,126,RightCommand,0x36,0xe05c,0xe027,0x8c,231,VK_RWIN,0x5c,0x6c,0x6c,XK_Meta_R,0xffe8,MetaRight,RMTA,meta_r,0x7a,0x37 |  | ||||||
| KEY_RIGHTMETA,126,RightCommand,0x36,0xe05c,0xe027,0x8c,231,VK_RWIN,0x5c,0x6c,0x6c,XK_Meta_R,0xffe8,MetaRight,RWIN,meta_r,0x7a,0x37 |  | ||||||
| KEY_COMPOSE,127,,0x6e,0xe05d,0xe02f,0x8d,101,VK_APPS,0x5d,0x6d,0x6d,,,ContextMenu,MENU,compose,0x43, |  | ||||||
| KEY_COMPOSE,127,,0x6e,0xe05d,0xe02f,0x8d,101,VK_APPS,0x5d,0x6d,0x6d,,,ContextMenu,COMP,compose,0x43, |  | ||||||
| KEY_STOP,128,,,0xe068,0xe028,0x0a,120,VK_BROWSER_STOP,0xa9,,,,,BrowserStop,STOP,stop,0x01, |  | ||||||
| KEY_STOP,128,,,0xe068,0xe028,0x0a,243,VK_BROWSER_STOP,0xa9,,,,,BrowserStop,STOP,stop,0x01, |  | ||||||
| KEY_AGAIN,129,,,0xe005,,0x0b,121,,,,,,,Again,AGAI,again,0x03, |  | ||||||
| KEY_PROPS,130,,,0xe006,,0x0c,,,,,,,,Props,PROP,props,0x19, |  | ||||||
| KEY_UNDO,131,,,0xe007,,0x10,122,,,,,,,Undo,UNDO,undo,0x1a, |  | ||||||
| KEY_FRONT,132,,,0xe00c,,,119,,,,,,,,FRNT,front,0x31, |  | ||||||
| KEY_COPY,133,,,0xe078,,0x18,124,,,,,,,Copy,COPY,copy,0x33, |  | ||||||
| KEY_OPEN,134,,,0x64,,0x20,116,,,,,,,Open,OPEN,open,0x48, |  | ||||||
| KEY_PASTE,135,,,0x65,,0x28,125,,,,,,,Paste,PAST,paste,0x49, |  | ||||||
| KEY_FIND,136,,,0xe041,,0x30,126,,,,,,,Find,FIND,find,0x5f, |  | ||||||
| KEY_FIND,136,,,0xe041,,0x30,244,,,,,,,Find,FIND,find,0x5f, |  | ||||||
| KEY_CUT,137,,,0xe03c,,0x38,123,,,,,,,Cut,CUT,cut,0x61, |  | ||||||
| KEY_HELP,138,Help,0x72,0xe075,,0x09,117,VK_HELP,0x2f,,,XK_Help,0xff6a,Help,HELP,help,0x76, |  | ||||||
| KEY_MENU,139,,,0xe01e,,0x91,118,,,,,,,,I147,menu,, |  | ||||||
| KEY_CALC,140,,,0xe021,0xe02b,0xa3,251,,,,,,,LaunchApp2,I148,calculator,, |  | ||||||
| KEY_SETUP,141,,,0x66,,,,,,,,,,,I149,,, |  | ||||||
| KEY_SLEEP,142,,,0xe05f,0xe03f,,248,VK_SLEEP,0x5f,,,,,Sleep,I150,sleep,, |  | ||||||
| KEY_WAKEUP,143,,,0xe063,0xe05e,,,,,,,,,WakeUp,I151,wake,, |  | ||||||
| KEY_FILE,144,,,0x67,,,,,,,,,,,I152,,, |  | ||||||
| KEY_SENDFILE,145,,,0x68,,,,,,,,,,,I153,,, |  | ||||||
| KEY_DELETEFILE,146,,,0x69,,,,,,,,,,,I154,,, |  | ||||||
| KEY_XFER,147,,,0xe013,,0xa2,,,,,,,,,XFER,,, |  | ||||||
| KEY_XFER,147,,,0xe013,,0xa2,,,,,,,,,I155,,, |  | ||||||
| KEY_PROG1,148,,,0xe01f,,0xa0,,,,,,,,,I156,,, |  | ||||||
| KEY_PROG2,149,,,0xe017,,0xa1,,,,,,,,,I157,,, |  | ||||||
| KEY_WWW,150,,,0xe002,,,240,,,,,,,,I158,,, |  | ||||||
| KEY_MSDOS,151,,,0x6a,,,,,,,,,,,I159,,, |  | ||||||
| KEY_SCREENLOCK,152,,,0xe012,,0x96,249,,,,,,,,I160,,, |  | ||||||
| KEY_DIRECTION,153,,,0x6b,,,,,,,,,,,I161,,, |  | ||||||
| KEY_CYCLEWINDOWS,154,,,0xe026,,0x9b,,,,,,,,,I162,,, |  | ||||||
| KEY_MAIL,155,,,0xe06c,0xe048,,,,,,,,,LaunchMail,I163,mail,, |  | ||||||
| KEY_BOOKMARKS,156,,,0xe066,0xe018,,,,,,,,,BrowserFavorites,I164,ac_bookmarks,, |  | ||||||
| KEY_COMPUTER,157,,,0xe06b,0xe040,,,,,,,,,LaunchApp1,I165,computer,, |  | ||||||
| KEY_BACK,158,,,0xe06a,0xe038,,241,VK_BROWSER_BACK,0xa6,,,,,BrowserBack,I166,ac_back,, |  | ||||||
| KEY_FORWARD,159,,,0xe069,0xe030,,242,VK_BROWSER_FORWARD,0xa7,,,,,BrowserForward,I167,ac_forward,, |  | ||||||
| KEY_CLOSECD,160,,,0xe023,,0x9a,,,,,,,,,I168,,, |  | ||||||
| KEY_EJECTCD,161,,,0x6c,,,236,,,,,,,,I169,,, |  | ||||||
| KEY_EJECTCLOSECD,162,,,0xe07d,,,,,,,,,,Eject,I170,,, |  | ||||||
| KEY_NEXTSONG,163,,,0xe019,0xe04d,0x93,235,VK_MEDIA_NEXT_TRACK,0xb0,,,,,MediaTrackNext,I171,audionext,, |  | ||||||
| KEY_PLAYPAUSE,164,,,0xe022,0xe034,,232,VK_MEDIA_PLAY_PAUSE,0xb3,,,,,MediaPlayPause,I172,audioplay,, |  | ||||||
| KEY_PREVIOUSSONG,165,,,0xe010,0xe015,0x94,234,VK_MEDIA_PREV_TRACK,0xb1,,,,,MediaTrackPrevious,I173,audioprev,, |  | ||||||
| KEY_STOPCD,166,,,0xe024,0xe03b,0x98,233,VK_MEDIA_STOP,0xb2,,,,,MediaStop,I174,audiostop,, |  | ||||||
| KEY_RECORD,167,,,0xe031,,0x9e,,,,,,,,,I175,,, |  | ||||||
| KEY_REWIND,168,,,0xe018,,0x9f,,,,,,,,,I176,,, |  | ||||||
| KEY_PHONE,169,,,0x63,,,,,,,,,,,I177,,, |  | ||||||
| KEY_ISO,170,ISO_Section,0xa,,,,,,,,,,,,I178,,, |  | ||||||
| KEY_CONFIG,171,,,0xe001,,,,,,,,,,,I179,,, |  | ||||||
| KEY_HOMEPAGE,172,,,0xe032,0xe03a,0x97,,VK_BROWSER_HOME,0xac,,,,,BrowserHome,I180,ac_home,, |  | ||||||
| KEY_REFRESH,173,,,0xe067,0xe020,,250,VK_BROWSER_REFRESH,0xa8,,,,,BrowserRefresh,I181,ac_refresh,, |  | ||||||
| KEY_EXIT,174,,,,,,,,,,,,,,I182,,, |  | ||||||
| KEY_MOVE,175,,,,,,,,,,,,,,I183,,, |  | ||||||
| KEY_EDIT,176,,,0xe008,,,247,,,,,,,,I184,,, |  | ||||||
| KEY_SCROLLUP,177,,,0x75,,,245,,,,,,,,I185,,, |  | ||||||
| KEY_SCROLLDOWN,178,,,0xe00f,,,246,,,,,,,,I186,,, |  | ||||||
| KEY_KPLEFTPAREN,179,,,0xe076,,,182,,,,,,,NumpadParenLeft,I187,,, |  | ||||||
| KEY_KPRIGHTPAREN,180,,,0xe07b,,,183,,,,,,,NumpadParenRight,I188,,, |  | ||||||
| KEY_NEW,181,,,0xe009,,,,,,,,,,,I189,,, |  | ||||||
| KEY_REDO,182,,,0xe00a,,,,,,,,,,,I190,,, |  | ||||||
| KEY_F13,183,F13,0x69,0x5d,0x2f,0x7f,104,VK_F13,0x7c,0x6e,0x6e,,,F13,FK13,,,0x69 |  | ||||||
| KEY_F14,184,F14,0x6b,0x5e,0x37,0x80,105,VK_F14,0x7d,0x6f,0x6f,,,F14,FK14,,,0x6b |  | ||||||
| KEY_F15,185,F15,0x71,0x5f,0x3f,0x81,106,VK_F15,0x7e,0x70,0x70,,,F15,FK15,,,0x71 |  | ||||||
| KEY_F16,186,F16,0x6a,0x55,,0x82,107,VK_F16,0x7f,0x71,0x71,,,F16,FK16,,, |  | ||||||
| KEY_F17,187,F17,0x40,0xe003,,0x83,108,VK_F17,0x80,0x72,0x72,,,F17,FK17,,, |  | ||||||
| KEY_F18,188,F18,0x4f,0xe077,,,109,VK_F18,0x81,,,,,F18,FK18,,, |  | ||||||
| KEY_F19,189,F19,0x50,0xe004,,,110,VK_F19,0x82,,,,,F19,FK19,,, |  | ||||||
| KEY_F20,190,F20,0x5a,0x5a,,,111,VK_F20,0x83,,,,,F20,FK20,,, |  | ||||||
| KEY_F21,191,,,0x74,,,112,VK_F21,0x84,,,,,F21,FK21,,, |  | ||||||
| KEY_F22,192,,,0xe079,,,113,VK_F22,0x85,,,,,F22,FK22,,, |  | ||||||
| KEY_F23,193,,,0x6d,,,114,VK_F23,0x86,,,,,F23,FK23,,, |  | ||||||
| KEY_F24,194,,,0x6f,,,115,VK_F24,0x87,,,,,F24,FK24,,, |  | ||||||
| ,195,,,0xe015,,,,,,,,,,,,,, |  | ||||||
| ,196,,,0xe016,,,,,,,,,,,,,, |  | ||||||
| ,197,,,0xe01a,,,,,,,,,,,,,, |  | ||||||
| ,198,,,0xe01b,,,,,,,,,,,,,, |  | ||||||
| ,199,,,0xe027,,,,,,,,,,,,,, |  | ||||||
| KEY_PLAYCD,200,,,0xe028,,,,,,,,,,,I208,,, |  | ||||||
| KEY_PAUSECD,201,,,0xe029,,,,,,,,,,,I209,,, |  | ||||||
| KEY_PROG3,202,,,0xe02b,,,,,,,,,,,I210,,, |  | ||||||
| KEY_PROG4,203,,,0xe02c,,,,,,,,,,,I211,,, |  | ||||||
| KEY_DASHBOARD,204,,,0xe02d,,,,,,,,,,,I212,,, |  | ||||||
| KEY_SUSPEND,205,,,0xe025,,,,,,,,,,Suspend,I213,,, |  | ||||||
| KEY_CLOSE,206,,,0xe02f,,,,,,,,,,,I214,,, |  | ||||||
| KEY_PLAY,207,,,0xe033,,,,VK_PLAY,0xfa,,,,,,I215,,, |  | ||||||
| KEY_FASTFORWARD,208,,,0xe034,,,,,,,,,,,I216,,, |  | ||||||
| KEY_BASSBOOST,209,,,0xe036,,,,,,,,,,,I217,,, |  | ||||||
| KEY_PRINT,210,,,0xe039,,,,VK_PRINT,0x2a,,,,,,I218,,, |  | ||||||
| KEY_HP,211,,,0xe03a,,,,,,,,,,,I219,,, |  | ||||||
| KEY_CAMERA,212,,,0xe03b,,,,,,,,,,,I220,,, |  | ||||||
| KEY_SOUND,213,,,0xe03d,,,,,,,,,,,I221,,, |  | ||||||
| KEY_QUESTION,214,,,0xe03e,,,,,,,,,,,I222,,, |  | ||||||
| KEY_EMAIL,215,,,0xe03f,,,,VK_LAUNCH_MAIL,0xb4,,,,,,I223,,, |  | ||||||
| KEY_CHAT,216,,,0xe040,,,,,,,,,,,I224,,, |  | ||||||
| KEY_SEARCH,217,,,0xe065,0xe010,,,VK_BROWSER_SEARCH,0xaa,,,,,BrowserSearch,I225,,, |  | ||||||
| KEY_CONNECT,218,,,0xe042,,,,,,,,,,,I226,,, |  | ||||||
| KEY_FINANCE,219,,,0xe043,,,,,,,,,,,I227,,, |  | ||||||
| KEY_SPORT,220,,,0xe044,,,,,,,,,,,I228,,, |  | ||||||
| KEY_SHOP,221,,,0xe045,,,,,,,,,,,I229,,, |  | ||||||
| KEY_ALTERASE,222,,,0xe014,,,,,,,,,,,I230,,, |  | ||||||
| KEY_CANCEL,223,,,0xe04a,,,,,,,,,,,I231,,, |  | ||||||
| KEY_BRIGHTNESSDOWN,224,,,0xe04c,,,,,,,,,,,I232,,, |  | ||||||
| KEY_BRIGHTNESSUP,225,,,0xe054,,,,,,,,,,,I233,,, |  | ||||||
| KEY_MEDIA,226,,,0xe06d,0xe050,,,,,,,,,MediaSelect,I234,mediaselect,, |  | ||||||
| KEY_SWITCHVIDEOMODE,227,,,0xe056,,,,,,,,,,,I235,,, |  | ||||||
| KEY_KBDILLUMTOGGLE,228,,,0xe057,,,,,,,,,,,I236,,, |  | ||||||
| KEY_KBDILLUMDOWN,229,,,0xe058,,,,,,,,,,,I237,,, |  | ||||||
| KEY_KBDILLUMUP,230,,,0xe059,,,,,,,,,,,I238,,, |  | ||||||
| KEY_SEND,231,,,0xe05a,,,,,,,,,,,I239,,, |  | ||||||
| KEY_REPLY,232,,,0xe064,,,,,,,,,,,I240,,, |  | ||||||
| KEY_FORWARDMAIL,233,,,0xe00e,,,,,,,,,,,I241,,, |  | ||||||
| KEY_SAVE,234,,,0xe055,,,,,,,,,,,I242,,, |  | ||||||
| KEY_DOCUMENTS,235,,,0xe070,,,,,,,,,,,I243,,, |  | ||||||
| KEY_BATTERY,236,,,0xe071,,,,,,,,,,,I244,,, |  | ||||||
| KEY_BLUETOOTH,237,,,0xe072,,,,,,,,,,,I245,,, |  | ||||||
| KEY_WLAN,238,,,0xe073,,,,,,,,,,,I246,,, |  | ||||||
| KEY_UWB,239,,,0xe074,,,,,,,,,,,I247,,, |  | ||||||
| KEY_UNKNOWN,240,,,,,,,,,,,,,,I248,,, |  | ||||||
| KEY_VIDEO_NEXT,241,,,,,,,,,,,,,,I249,,, |  | ||||||
| KEY_VIDEO_PREV,242,,,,,,,,,,,,,,I250,,, |  | ||||||
| KEY_BRIGHTNESS_CYCLE,243,,,,,,,,,,,,,,I251,,, |  | ||||||
| KEY_BRIGHTNESS_ZERO,244,,,,,,,,,,,,,,I252,,, |  | ||||||
| KEY_DISPLAY_OFF,245,,,,,,,,,,,,,,I253,,, |  | ||||||
| KEY_WIMAX,246,,,,,,,,,,,,,,,,, |  | ||||||
| ,247,,,,,,,,,,,,,,,,, |  | ||||||
| ,248,,,,,,,,,,,,,,,,, |  | ||||||
| ,249,,,,,,,,,,,,,,,,, |  | ||||||
| ,250,,,,,,,,,,,,,,,,, |  | ||||||
| ,251,,,,,,,,,,,,,,,,, |  | ||||||
| ,252,,,,,,,,,,,,,,,,, |  | ||||||
| ,253,,,,,,,,,,,,,,,,, |  | ||||||
| ,254,,,,,,,,,,,,,,,,, |  | ||||||
| ,255,,,,0xe012,,,,,,,,,,,,, |  | ||||||
| BTN_MISC,0x100,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_0,0x100,,,,,,,VK_LBUTTON,0x01,,,,,,,,, |  | ||||||
| BTN_1,0x101,,,,,,,VK_RBUTTON,0x02,,,,,,,,, |  | ||||||
| BTN_2,0x102,,,,,,,VK_MBUTTON,0x04,,,,,,,,, |  | ||||||
| BTN_3,0x103,,,,,,,VK_XBUTTON1,0x05,,,,,,,,, |  | ||||||
| BTN_4,0x104,,,,,,,VK_XBUTTON2,0x06,,,,,,,,, |  | ||||||
| BTN_5,0x105,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_6,0x106,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_7,0x107,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_8,0x108,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_9,0x109,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_MOUSE,0x110,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_LEFT,0x110,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_RIGHT,0x111,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_MIDDLE,0x112,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_SIDE,0x113,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_EXTRA,0x114,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_FORWARD,0x115,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BACK,0x116,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TASK,0x117,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_JOYSTICK,0x120,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TRIGGER,0x120,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_THUMB,0x121,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_THUMB2,0x122,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOP,0x123,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOP2,0x124,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_PINKIE,0x125,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BASE,0x126,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BASE2,0x127,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BASE3,0x128,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BASE4,0x129,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BASE5,0x12a,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_BASE6,0x12b,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_DEAD,0x12f,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_GAMEPAD,0x130,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_A,0x130,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_B,0x131,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_C,0x132,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_X,0x133,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_Y,0x134,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_Z,0x135,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TL,0x136,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TR,0x137,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TL2,0x138,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TR2,0x139,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_SELECT,0x13a,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_START,0x13b,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_MODE,0x13c,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_THUMBL,0x13d,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_THUMBR,0x13e,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_DIGI,0x140,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_PEN,0x140,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_RUBBER,0x141,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_BRUSH,0x142,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_PENCIL,0x143,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_AIRBRUSH,0x144,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_FINGER,0x145,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_MOUSE,0x146,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_LENS,0x147,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOUCH,0x14a,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_STYLUS,0x14b,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_STYLUS2,0x14c,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_DOUBLETAP,0x14d,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_TRIPLETAP,0x14e,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_TOOL_QUADTAP,0x14f,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_WHEEL,0x150,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_GEAR_DOWN,0x150,,,,,,,,,,,,,,,,, |  | ||||||
| BTN_GEAR_UP,0x151,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_OK,0x160,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SELECT,0x161,,,,,,,VK_SELECT,0x29,,,XK_Select,0xff60,Select,SELE,,, |  | ||||||
| KEY_GOTO,0x162,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CLEAR,0x163,,,,,,,,,,,,,NumpadClear,CLR,,, |  | ||||||
| KEY_POWER2,0x164,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_OPTION,0x165,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_INFO,0x166,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TIME,0x167,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_VENDOR,0x168,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ARCHIVE,0x169,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_PROGRAM,0x16a,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CHANNEL,0x16b,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FAVORITES,0x16c,,,,,,,VK_BROWSER_FAVOURITES,0xab,,,,,,,,, |  | ||||||
| KEY_EPG,0x16d,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_PVR,0x16e,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_MHP,0x16f,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_LANGUAGE,0x170,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TITLE,0x171,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SUBTITLE,0x172,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ANGLE,0x173,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ZOOM,0x174,,,,,,,VK_ZOOM,0xfb,,,,,,,,, |  | ||||||
| KEY_MODE,0x175,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_KEYBOARD,0x176,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SCREEN,0x177,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_PC,0x178,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TV,0x179,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TV2,0x17a,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_VCR,0x17b,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_VCR2,0x17c,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SAT,0x17d,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SAT2,0x17e,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CD,0x17f,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TAPE,0x180,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_RADIO,0x181,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TUNER,0x182,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_PLAYER,0x183,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TEXT,0x184,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DVD,0x185,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_AUX,0x186,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_MP3,0x187,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_AUDIO,0x188,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_VIDEO,0x189,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DIRECTORY,0x18a,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_LIST,0x18b,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_MEMO,0x18c,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CALENDAR,0x18d,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_RED,0x18e,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_GREEN,0x18f,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_YELLOW,0x190,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BLUE,0x191,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CHANNELUP,0x192,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CHANNELDOWN,0x193,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FIRST,0x194,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_LAST,0x195,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_AB,0x196,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NEXT,0x197,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_RESTART,0x198,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SLOW,0x199,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SHUFFLE,0x19a,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BREAK,0x19b,,,,,,,,,,,,,,BREA,,, |  | ||||||
| KEY_BREAK,0x19b,,,,,,,,,,,,,,BRK,,, |  | ||||||
| KEY_PREVIOUS,0x19c,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DIGITS,0x19d,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TEEN,0x19e,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_TWEN,0x19f,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_VIDEOPHONE,0x1a0,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_GAMES,0x1a1,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ZOOMIN,0x1a2,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ZOOMOUT,0x1a3,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ZOOMRESET,0x1a4,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_WORDPROCESSOR,0x1a5,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_EDITOR,0x1a6,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SPREADSHEET,0x1a7,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_GRAPHICSEDITOR,0x1a8,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_PRESENTATION,0x1a9,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DATABASE,0x1aa,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NEWS,0x1ab,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_VOICEMAIL,0x1ac,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_ADDRESSBOOK,0x1ad,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_MESSENGER,0x1ae,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DISPLAYTOGGLE,0x1af,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_SPELLCHECK,0x1b0,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_LOGOFF,0x1b1,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DOLLAR,0x1b2,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_EURO,0x1b3,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FRAMEBACK,0x1b4,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FRAMEFORWARD,0x1b5,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_CONTEXT_MENU,0x1b6,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_MEDIA_REPEAT,0x1b7,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DEL_EOL,0x1c0,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DEL_EOS,0x1c1,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_INS_LINE,0x1c2,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_DEL_LINE,0x1c3,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN,0x1d0,Function,0x3f,,,,,,,,,,,Fn,,,, |  | ||||||
| KEY_FN_ESC,0x1d1,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F1,0x1d2,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F2,0x1d3,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F3,0x1d4,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F4,0x1d5,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F5,0x1d6,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F6,0x1d7,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F7,0x1d8,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F8,0x1d9,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F9,0x1da,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F10,0x1db,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F11,0x1dc,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F12,0x1dd,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_1,0x1de,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_2,0x1df,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_D,0x1e0,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_E,0x1e1,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_F,0x1e2,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_S,0x1e3,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_FN_B,0x1e4,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT1,0x1f1,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT2,0x1f2,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT3,0x1f3,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT4,0x1f4,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT5,0x1f5,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT6,0x1f6,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT7,0x1f7,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT8,0x1f8,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT9,0x1f9,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_BRL_DOT10,0x1fa,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_0,0x200,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_1,0x201,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_2,0x202,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_3,0x203,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_4,0x204,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_5,0x205,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_6,0x206,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_7,0x207,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_8,0x208,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_9,0x209,,,,,,,,,,,,,,,,, |  | ||||||
| KEY_NUMERIC_STAR,0x20a,,,,,,,,,,,,,NumpadStar,,,, |  | ||||||
| KEY_NUMERIC_POUND,0x20b,,,,,,,,,,,,,NumpadHash,,,, |  | ||||||
| KEY_RFKILL,0x20c,,,,,,,,,,,,,,,,, |  | ||||||
| 
 | 
| @ -1 +0,0 @@ | |||||||
| project('keycodemapdb') |  | ||||||
							
								
								
									
										11
									
								
								keycodemapdb/tests/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								keycodemapdb/tests/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,11 +0,0 @@ | |||||||
| osx2win32.* |  | ||||||
| osx2win32_name.* |  | ||||||
| osx2xkb.* |  | ||||||
| osx2xkb_name.* |  | ||||||
| html2win32.* |  | ||||||
| html2win32_name.* |  | ||||||
| osx.* |  | ||||||
| osx_name.* |  | ||||||
| stdc |  | ||||||
| stdc++ |  | ||||||
| node_modules/ |  | ||||||
| @ -1,150 +0,0 @@ | |||||||
| TESTS := stdc stdc++ python2 python3 javascript |  | ||||||
| 
 |  | ||||||
| check: $(TESTS) |  | ||||||
| 	@set -e; for fn in $(TESTS); do \
 |  | ||||||
| 		./$$fn; \
 |  | ||||||
| 		echo $$fn: OK; \
 |  | ||||||
| 	done |  | ||||||
| 	@echo Done. |  | ||||||
| 
 |  | ||||||
| GEN := ../tools/keymap-gen |  | ||||||
| DATA := ../data/keymaps.csv |  | ||||||
| SOURCES := $(GEN) $(DATA) |  | ||||||
| 
 |  | ||||||
| .DELETE_ON_ERROR: |  | ||||||
| 
 |  | ||||||
| stdc: stdc.c osx2win32.h osx2win32.c osx2win32_name.h osx2win32_name.c \ |  | ||||||
|              osx2xkb.h osx2xkb.c osx2xkb_name.h osx2xkb_name.c \
 |  | ||||||
|              html2win32.h html2win32.c html2win32_name.h html2win32_name.c \
 |  | ||||||
|              osx.h osx.c osx_name.h osx_name.c |  | ||||||
| 	$(CC) -Wall -o $@ $(filter %.c, $^) |  | ||||||
| osx2win32.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc code-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header code-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32_name.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc name-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32_name.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header name-map $(DATA) osx win32 > $@ |  | ||||||
| osx2xkb.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc code-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header code-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb_name.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc name-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb_name.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header name-map $(DATA) osx xkb > $@ |  | ||||||
| html2win32.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc code-map $(DATA) html win32 > $@ |  | ||||||
| html2win32.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header code-map $(DATA) html win32 > $@ |  | ||||||
| html2win32_name.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc name-map $(DATA) html win32 > $@ |  | ||||||
| html2win32_name.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header name-map $(DATA) html win32 > $@ |  | ||||||
| osx.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc code-table $(DATA) osx > $@ |  | ||||||
| osx.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header code-table $(DATA) osx > $@ |  | ||||||
| osx_name.c: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc name-table $(DATA) osx > $@ |  | ||||||
| osx_name.h: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc-header name-table $(DATA) osx > $@ |  | ||||||
| 
 |  | ||||||
| stdc++: stdc++.cc osx2win32.hh osx2win32.cc osx2win32_name.hh osx2win32_name.cc \ |  | ||||||
|              osx2xkb.hh osx2xkb.cc osx2xkb_name.hh osx2xkb_name.cc \
 |  | ||||||
|              html2win32.hh html2win32.cc html2win32_name.hh html2win32_name.cc \
 |  | ||||||
|              osx.hh osx.cc osx_name.hh osx_name.cc |  | ||||||
| 	$(CXX) -Wall -std=c++11 -o $@ $(filter %.cc, $^) |  | ||||||
| osx2win32.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ code-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header code-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32_name.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ name-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32_name.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header name-map $(DATA) osx win32 > $@ |  | ||||||
| osx2xkb.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ code-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header code-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb_name.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ name-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb_name.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header name-map $(DATA) osx xkb > $@ |  | ||||||
| html2win32.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ code-map $(DATA) html win32 > $@ |  | ||||||
| html2win32.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header code-map $(DATA) html win32 > $@ |  | ||||||
| html2win32_name.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ name-map $(DATA) html win32 > $@ |  | ||||||
| html2win32_name.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header name-map $(DATA) html win32 > $@ |  | ||||||
| osx.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ code-table $(DATA) osx > $@ |  | ||||||
| osx.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header code-table $(DATA) osx > $@ |  | ||||||
| osx_name.cc: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++ name-table $(DATA) osx > $@ |  | ||||||
| osx_name.hh: $(SOURCES) |  | ||||||
| 	$(GEN) --lang stdc++-header name-table $(DATA) osx > $@ |  | ||||||
| 
 |  | ||||||
| python2: osx2win32.py osx2win32_name.py \ |  | ||||||
|          osx2xkb.py osx2xkb_name.py \
 |  | ||||||
|          html2win32.py html2win32_name.py \
 |  | ||||||
|          osx.py osx_name.py |  | ||||||
| osx2win32.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 code-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32_name.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 name-map $(DATA) osx win32 > $@ |  | ||||||
| osx2xkb.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 code-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb_name.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 name-map $(DATA) osx xkb > $@ |  | ||||||
| html2win32.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 code-map $(DATA) html win32 > $@ |  | ||||||
| html2win32_name.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 name-map $(DATA) html win32 > $@ |  | ||||||
| osx.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 code-table $(DATA) osx > $@ |  | ||||||
| osx_name.py: $(SOURCES) |  | ||||||
| 	$(GEN) --lang python2 name-table $(DATA) osx > $@ |  | ||||||
| 
 |  | ||||||
| javascript: node_modules/babel-core \ |  | ||||||
|             node_modules/babel-plugin-transform-es2015-modules-commonjs \
 |  | ||||||
|             osx2win32.js osx2win32_name.js \
 |  | ||||||
|             osx2xkb.js osx2xkb_name.js \
 |  | ||||||
|             html2win32.js html2win32_name.js \
 |  | ||||||
|             osx.js osx_name.js |  | ||||||
| node_modules/babel-core: |  | ||||||
| 	npm install babel-core |  | ||||||
| node_modules/babel-plugin-transform-es2015-modules-commonjs: |  | ||||||
| 	npm install babel-plugin-transform-es2015-modules-commonjs |  | ||||||
| osx2win32.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js code-map $(DATA) osx win32 > $@ |  | ||||||
| osx2win32_name.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js name-map $(DATA) osx win32 > $@ |  | ||||||
| osx2xkb.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js code-map $(DATA) osx xkb > $@ |  | ||||||
| osx2xkb_name.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js name-map $(DATA) osx xkb > $@ |  | ||||||
| html2win32.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js code-map $(DATA) html win32 > $@ |  | ||||||
| html2win32_name.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js name-map $(DATA) html win32 > $@ |  | ||||||
| osx.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js code-table $(DATA) osx > $@ |  | ||||||
| osx_name.js: $(SOURCES) |  | ||||||
| 	$(GEN) --lang js name-table $(DATA) osx > $@ |  | ||||||
| 
 |  | ||||||
| clean: |  | ||||||
| 	rm -rf node_modules |  | ||||||
| 	rm -f osx2win32.* |  | ||||||
| 	rm -f osx2win32_name.* |  | ||||||
| 	rm -f osx2xkb.* |  | ||||||
| 	rm -f osx2xkb_name.* |  | ||||||
| 	rm -f html2win32.* |  | ||||||
| 	rm -f html2win32_name.* |  | ||||||
| 	rm -f osx.* |  | ||||||
| 	rm -f osx_name.* |  | ||||||
| 	rm -f stdc stdc++ |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| #!/usr/bin/env node |  | ||||||
| /* |  | ||||||
|  * Keycode Map Generator JavaScript Tests |  | ||||||
|  * |  | ||||||
|  * Copyright 2017 Pierre Ossman for Cendio AB |  | ||||||
|  * |  | ||||||
|  * This file is dual license under the terms of the GPLv2 or later |  | ||||||
|  * and 3-clause BSD licenses. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| "use strict"; |  | ||||||
| 
 |  | ||||||
| var assert = require('assert'); |  | ||||||
| var babel = require('babel-core'); |  | ||||||
| var fs = require('fs'); |  | ||||||
| 
 |  | ||||||
| function include(fn) { |  | ||||||
|   var options = { |  | ||||||
|     plugins: ["transform-es2015-modules-commonjs"] |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   var code = babel.transformFileSync(fn, options).code; |  | ||||||
|   fs.writeFileSync("." + fn + "_nodejs.js", code); |  | ||||||
|   var imp = require("./." + fn + "_nodejs.js"); |  | ||||||
|   fs.unlinkSync("./." + fn + "_nodejs.js"); |  | ||||||
| 
 |  | ||||||
|   return imp |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| var code_map_osx_to_win32 = include("osx2win32.js").default; |  | ||||||
| var name_map_osx_to_win32 = include("osx2win32_name.js").default; |  | ||||||
| 
 |  | ||||||
| var code_map_osx_to_xkb = include("osx2xkb.js").default; |  | ||||||
| var name_map_osx_to_xkb = include("osx2xkb_name.js").default; |  | ||||||
| 
 |  | ||||||
| var code_map_html_to_win32 = include("html2win32.js").default; |  | ||||||
| var name_map_html_to_win32 = include("html2win32_name.js").default; |  | ||||||
| 
 |  | ||||||
| var code_table_osx = include("osx.js").default; |  | ||||||
| var name_table_osx = include("osx_name.js").default; |  | ||||||
| 
 |  | ||||||
| assert.equal(code_map_osx_to_win32[0x1d], 0x30); |  | ||||||
| assert.equal(name_map_osx_to_win32[0x1d], "VK_0"); |  | ||||||
| 
 |  | ||||||
| assert.equal(code_map_osx_to_xkb[0x1d], "AE10"); |  | ||||||
| assert.equal(name_map_osx_to_xkb[0x1d], "AE10"); |  | ||||||
| 
 |  | ||||||
| assert.equal(code_map_html_to_win32["ControlLeft"], 0x11); |  | ||||||
| assert.equal(name_map_html_to_win32["ControlLeft"], "VK_CONTROL"); |  | ||||||
| 
 |  | ||||||
| assert.equal(code_table_osx[0x1d], 0x3b); |  | ||||||
| assert.equal(name_table_osx[0x1d], "Control"); |  | ||||||
| 
 |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| python ./test.py |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| python3 ./test.py |  | ||||||
| @ -1,40 +0,0 @@ | |||||||
| /*
 |  | ||||||
|  * Keycode Map Generator C++ Tests |  | ||||||
|  * |  | ||||||
|  * Copyright 2017 Pierre Ossman for Cendio AB |  | ||||||
|  * |  | ||||||
|  * This file is dual license under the terms of the GPLv2 or later |  | ||||||
|  * and 3-clause BSD licenses. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <assert.h> |  | ||||||
| #include <string.h> |  | ||||||
| 
 |  | ||||||
| #include "osx2win32.hh" |  | ||||||
| #include "osx2win32_name.hh" |  | ||||||
| 
 |  | ||||||
| #include "osx2xkb.hh" |  | ||||||
| #include "osx2xkb_name.hh" |  | ||||||
| 
 |  | ||||||
| #include "html2win32.hh" |  | ||||||
| #include "html2win32_name.hh" |  | ||||||
| 
 |  | ||||||
| #include "osx.hh" |  | ||||||
| #include "osx_name.hh" |  | ||||||
| 
 |  | ||||||
| int main(int argc, char** argv) |  | ||||||
| { |  | ||||||
| 	assert(code_map_osx_to_win32[0x1d] == 0x30); |  | ||||||
| 	assert(strcmp(name_map_osx_to_win32[0x1d], "VK_0") == 0); |  | ||||||
| 
 |  | ||||||
| 	assert(strcmp(code_map_osx_to_xkb[0x1d], "AE10") == 0); |  | ||||||
| 	assert(strcmp(name_map_osx_to_xkb[0x1d], "AE10") == 0); |  | ||||||
| 
 |  | ||||||
| 	assert(code_map_html_to_win32.at("ControlLeft") == 0x11); |  | ||||||
| 	assert(strcmp(name_map_html_to_win32.at("ControlLeft"), "VK_CONTROL") == 0); |  | ||||||
| 
 |  | ||||||
| 	assert(code_table_osx[0x1d] == 0x3b); |  | ||||||
| 	assert(strcmp(name_table_osx[0x1d], "Control") == 0); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| @ -1,64 +0,0 @@ | |||||||
| /*
 |  | ||||||
|  * Keycode Map Generator C Tests |  | ||||||
|  * |  | ||||||
|  * Copyright 2017 Pierre Ossman for Cendio AB |  | ||||||
|  * |  | ||||||
|  * This file is dual license under the terms of the GPLv2 or later |  | ||||||
|  * and 3-clause BSD licenses. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <assert.h> |  | ||||||
| #include <string.h> |  | ||||||
| 
 |  | ||||||
| #include "osx2win32.h" |  | ||||||
| #include "osx2win32_name.h" |  | ||||||
| 
 |  | ||||||
| #include "osx2xkb.h" |  | ||||||
| #include "osx2xkb_name.h" |  | ||||||
| 
 |  | ||||||
| #include "html2win32.h" |  | ||||||
| #include "html2win32_name.h" |  | ||||||
| 
 |  | ||||||
| #include "osx.h" |  | ||||||
| #include "osx_name.h" |  | ||||||
| 
 |  | ||||||
| #define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0])) |  | ||||||
| 
 |  | ||||||
| int main(int argc, char** argv) |  | ||||||
| { |  | ||||||
| 	unsigned i; |  | ||||||
| 
 |  | ||||||
| 	assert(code_map_osx_to_win32_len == ARRAY_SIZE(code_map_osx_to_win32)); |  | ||||||
| 	assert(code_map_osx_to_win32[0x1d] == 0x30); |  | ||||||
| 	assert(name_map_osx_to_win32_len == ARRAY_SIZE(name_map_osx_to_win32)); |  | ||||||
| 	assert(strcmp(name_map_osx_to_win32[0x1d], "VK_0") == 0); |  | ||||||
| 
 |  | ||||||
| 	assert(code_map_osx_to_xkb_len == ARRAY_SIZE(code_map_osx_to_xkb)); |  | ||||||
| 	assert(strcmp(code_map_osx_to_xkb[0x1d], "AE10") == 0); |  | ||||||
| 	assert(name_map_osx_to_xkb_len == ARRAY_SIZE(name_map_osx_to_xkb)); |  | ||||||
| 	assert(strcmp(name_map_osx_to_xkb[0x1d], "AE10") == 0); |  | ||||||
| 
 |  | ||||||
| 	assert(code_map_html_to_win32_len == ARRAY_SIZE(code_map_html_to_win32)); |  | ||||||
| 	for (i = 0;i < code_map_html_to_win32_len;i++) { |  | ||||||
| 		if (strcmp(code_map_html_to_win32[i].from, "ControlLeft") == 0) { |  | ||||||
| 			assert(code_map_html_to_win32[i].to == 0x11); |  | ||||||
| 			break; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	assert(i != code_map_html_to_win32_len); |  | ||||||
| 	assert(name_map_html_to_win32_len == ARRAY_SIZE(name_map_html_to_win32)); |  | ||||||
| 	for (i = 0;i < name_map_html_to_win32_len;i++) { |  | ||||||
| 		if (strcmp(name_map_html_to_win32[i].from, "ControlLeft") == 0) { |  | ||||||
| 			assert(strcmp(name_map_html_to_win32[i].to, "VK_CONTROL") == 0); |  | ||||||
| 			break; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	assert(i != name_map_html_to_win32_len); |  | ||||||
| 
 |  | ||||||
| 	assert(code_table_osx_len == ARRAY_SIZE(code_table_osx)); |  | ||||||
| 	assert(code_table_osx[0x1d] == 0x3b); |  | ||||||
| 	assert(name_table_osx_len == ARRAY_SIZE(name_table_osx)); |  | ||||||
| 	assert(strcmp(name_table_osx[0x1d], "Control") == 0); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| @ -1,30 +0,0 @@ | |||||||
| # Keycode Map Generator Python Tests |  | ||||||
| # |  | ||||||
| # Copyright 2017 Pierre Ossman for Cendio AB |  | ||||||
| # |  | ||||||
| # This file is dual license under the terms of the GPLv2 or later |  | ||||||
| # and 3-clause BSD licenses. |  | ||||||
| 
 |  | ||||||
| import osx2win32 |  | ||||||
| import osx2win32_name |  | ||||||
| 
 |  | ||||||
| import osx2xkb |  | ||||||
| import osx2xkb_name |  | ||||||
| 
 |  | ||||||
| import html2win32 |  | ||||||
| import html2win32_name |  | ||||||
| 
 |  | ||||||
| import osx |  | ||||||
| import osx_name |  | ||||||
| 
 |  | ||||||
| assert osx2win32.code_map_osx_to_win32[0x1d] == 0x30 |  | ||||||
| assert osx2win32_name.name_map_osx_to_win32[0x1d] == "VK_0" |  | ||||||
| 
 |  | ||||||
| assert osx2xkb.code_map_osx_to_xkb[0x1d] == "AE10" |  | ||||||
| assert osx2xkb_name.name_map_osx_to_xkb[0x1d] == "AE10" |  | ||||||
| 
 |  | ||||||
| assert html2win32.code_map_html_to_win32["ControlLeft"] == 0x11 |  | ||||||
| assert html2win32_name.name_map_html_to_win32["ControlLeft"] == "VK_CONTROL" |  | ||||||
| 
 |  | ||||||
| assert osx.code_table_osx[0x1d] == 0x3b; |  | ||||||
| assert osx_name.name_table_osx[0x1d] == "Control"; |  | ||||||
							
								
								
									
										20
									
								
								keycodemapdb/thirdparty/LICENSE-argparse.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								keycodemapdb/thirdparty/LICENSE-argparse.txt
									
									
									
									
										vendored
									
									
								
							| @ -1,20 +0,0 @@ | |||||||
| argparse is (c) 2006-2009 Steven J. Bethard <steven.bethard@gmail.com>. |  | ||||||
| 
 |  | ||||||
| The argparse module was contributed to Python as of Python 2.7 and thus |  | ||||||
| was licensed under the Python license. Same license applies to all files in |  | ||||||
| the argparse package project. |  | ||||||
| 
 |  | ||||||
| For details about the Python License, please see doc/Python-License.txt. |  | ||||||
| 
 |  | ||||||
| History |  | ||||||
| ------- |  | ||||||
| 
 |  | ||||||
| Before (and including) argparse 1.1, the argparse package was licensed under |  | ||||||
| Apache License v2.0. |  | ||||||
| 
 |  | ||||||
| After argparse 1.1, all project files from the argparse project were deleted |  | ||||||
| due to license compatibility issues between Apache License 2.0 and GNU GPL v2. |  | ||||||
| 
 |  | ||||||
| The project repository then had a clean start with some files taken from |  | ||||||
| Python 2.7.1, so definitely all files are under Python License now. |  | ||||||
| 
 |  | ||||||
							
								
								
									
										0
									
								
								keycodemapdb/thirdparty/__init__.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										0
									
								
								keycodemapdb/thirdparty/__init__.py
									
									
									
									
										vendored
									
									
								
							
							
								
								
									
										2392
									
								
								keycodemapdb/thirdparty/argparse.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2392
									
								
								keycodemapdb/thirdparty/argparse.py
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fiona Ebner
						Fiona Ebner