From 590b75b23a874d45299cfb9407a9e105d9b17386 Mon Sep 17 00:00:00 2001 From: John Sullivan Date: Fri, 11 Sep 2020 01:25:28 -0700 Subject: [PATCH] Init --- .clang-format | 107 + .gitignore | 8 + .gitmodules | 3 + COPYING | 10 + COPYING_WESTON | 30 + LICENSE | 674 ++++++ Makefile | 46 + README.md | 62 + config.h | 165 ++ config.mk | 2 + contrib/grab.png | Bin 0 -> 350859 bytes drw.c | 71 + drw.h | 37 + keyboard.h | 217 ++ keymap.h | 2925 ++++++++++++++++++++++++ main.c | 352 +++ os-compatibility.c | 201 ++ os-compatibility.h | 52 + proto/virtual-keyboard-unstable-v1.xml | 113 + proto/wlr-layer-shell-unstable-v1.xml | 325 +++ proto/xdg-shell.xml | 1144 +++++++++ wld | 1 + 22 files changed, 6545 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 COPYING create mode 100644 COPYING_WESTON create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 config.h create mode 100644 config.mk create mode 100644 contrib/grab.png create mode 100644 drw.c create mode 100644 drw.h create mode 100644 keyboard.h create mode 100644 keymap.h create mode 100644 main.c create mode 100644 os-compatibility.c create mode 100644 os-compatibility.h create mode 100644 proto/virtual-keyboard-unstable-v1.xml create mode 100644 proto/wlr-layer-shell-unstable-v1.xml create mode 100644 proto/xdg-shell.xml create mode 160000 wld diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..42385f6 --- /dev/null +++ b/.clang-format @@ -0,0 +1,107 @@ +--- +Language: Cpp +# BasedOnStyle: LLVM +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Right +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: All +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 2 +ContinuationIndentWidth: 2 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: '(Test)?$' +IndentCaseLabels: false +IndentWidth: 2 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 2 +UseTab: ForIndentation +... diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3af2a48 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*~ +*\#* +*.o +*-client-protocol.h +include/config.h +.gdb_history +*.log +wvkbd diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c1792d8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "wld"] + path = wld + url = https://github.com/michaelforney/wld.git diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..ea160ee --- /dev/null +++ b/COPYING @@ -0,0 +1,10 @@ +Copyright © 2020 John Sullivan + +os-compatibility.h and os-compatibility.c are licensed by the Wayland project +under the MIT/X license. See more details in COPYING_WESTON. + +wld submodule is licensed by Michael Forney under the MIT license, see COPYING +in `wld/`. + +All other code in this repository falls under the terms of the GPL v3.0 license, +which can be found in LICENSE. \ No newline at end of file diff --git a/COPYING_WESTON b/COPYING_WESTON new file mode 100644 index 0000000..d65f5d3 --- /dev/null +++ b/COPYING_WESTON @@ -0,0 +1,30 @@ +Copyright © 2008-2012 Kristian Høgsberg +Copyright © 2010-2012 Intel Corporation +Copyright © 2010-2011 Benjamin Franzke +Copyright © 2011-2012 Collabora, Ltd. +Copyright © 2010 Red Hat + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +--- + +The above is the version of the MIT "Expat" License used by X.org: + + http://cgit.freedesktop.org/xorg/xserver/tree/COPYING diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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. But first, please read +. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..29beffc --- /dev/null +++ b/Makefile @@ -0,0 +1,46 @@ +include config.mk + +SRC=. +WLDSRC=wld + +PKGS = fontconfig wayland-client xkbcommon pixman-1 + +WVKBD_SOURCES += $(wildcard $(SRC)/*.c) +WVKBD_HEADERS += $(wildcard $(SRC)/*.h) + +CFLAGS += -std=gnu99 -Wall -g -DWITH_WAYLAND_SHM +CFLAGS += $(shell pkg-config --cflags $(PKGS)) +LDFLAGS =wld/libwld.a $(shell pkg-config --libs $(PKGS)) -lm -lutil + +WAYLAND_HEADERS = $(wildcard proto/*.xml) + +HDRS = $(WAYLAND_HEADERS:.xml=-client-protocol.h) +WAYLAND_SRC = $(HDRS:.h=.c) +SOURCES = $(WVKBD_SOURCES) $(WAYLAND_SRC) + +OBJECTS = $(SOURCES:.c=.o) + +all: wld wvkbd + +proto/%-client-protocol.c: proto/%.xml + wayland-scanner code < $? > $@ + +proto/%-client-protocol.h: proto/%.xml + wayland-scanner client-header < $? > $@ + +$(OBJECTS): $(HDRS) $(WVKBD_HEADERS) + +wvkbd: $(OBJECTS) + $(CC) -o wvkbd $(OBJECTS) $(LDFLAGS) + +wld: wld/libwld.a + +wld/libwld.a: + $(MAKE) -C wld ENABLE_DRM=0 + +clean: + rm -f $(OBJECTS) $(HDRS) $(WAYLAND_SRC) wvkbd + $(MAKE) -C wld clean + +format: + clang-format -i $(WVKBD_SOURCES) $(WVKBD_HEADERS) diff --git a/README.md b/README.md new file mode 100644 index 0000000..b823c30 --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# wvkbd - On-screen keyboard for wlroots that sucks less + + + +This project aims to deliver a minimum implementation of a wlroots on-screen +keyboard in legible C. This will **only** be a keyboard, not a feedback buzzer, +led blinker, or anything that requires more than what's needed to input text +quickly. The end product should be a static codebase that can be patched to add +new features. + +At the moment work still needs to be done to make the keyboard fully functional +and determine a minimum feature set. As of now, the following works: + +## Features + + - Typing, modifier locking, layout switching + - Positive visual feedback on key presses + - Custom layouts + - Custom color schemes + +There are some relatively critical areas that still need work: + + - Proper drawing of font glyphs/fontconfig alternatives (unknown glyphs for the + configured font are not drawn) + - Make sure the virtual input method in wayland is working as best as it can + - Customize keyboard window docking + - Nicer layout drawing/padding + - Determine if some dependencies are really needed (fontconfig is VERY + annoying, and wld may not be strictly necessary) + +And some nice to haves: + + - Daemon mode (hide/show keyboard on signals) + - Support for input method protocol in wayland, ability to respond to text + fields + - Alt input modes for things like emojis + - Typical international layouts in the repository + +Of course there's probably some more I'm forgetting, everything here is very +much early WIP so things will change very quickly. + +## Install + +You'll need the following developer packages + + - fontconfig + - wayland-client + - xkbcommon + - pixman + +After cloning this repo, run `git submodules update --init --recursive` + +Make any customizations you would like in `config.h` and run `make`, then `./wvkbd` + +## Contribute + +Any contributions are welcome, please tell me what I did wrong in issues or +PRs. I could also use some nice branding if that tickles your fancy. + +For code contributions, all I ask for now is you run `make format` (requires +`clang-format`) before opening a PR and include as much relevant detail as +possible. diff --git a/config.h b/config.h new file mode 100644 index 0000000..b460212 --- /dev/null +++ b/config.h @@ -0,0 +1,165 @@ +/* constants */ + +/* how tall the keyboard should be */ +#define KBD_PIXEL_HEIGHT 155 + +/* if your layout leaves an empty margin, increase this to fix it */ +#define KBD_PIXEL_OVERSCAN_WIDTH 0 + +/* rows for each layout */ +#define KBD_ROWS 4 + +/* columns for each layout (maximum keys per row) */ +#define KBD_COLS 10 + +/* spacing between keys */ +#define KBD_KEY_BORDER 1 + +#include "keyboard.h" + +/* font (see `man fonts-conf` for instructions) */ +static const char *fc_font_pattern = + "monospace:size=14:antialias=true:hinting=true"; + +/* layout declarations */ +enum layout_names { + Basic = 0, + Special, + NumLayouts, +}; + +static struct key keys_basic[], keys_special[]; + +static struct layout layouts[NumLayouts] = { + [Basic] = {keys_basic}, + [Special] = {keys_special}, +}; + +/* keyboard settings */ +static struct kbd keyboard = { + /* default layout */ + .layout = &layouts[Basic], + .scheme = + { + /* colors */ + .bg = {.bgra = {15, 15, 15, 225}}, + .fg = {.bgra = {45, 45, 45, 225}}, + .high = {.bgra = {100, 100, 100, 225}}, + .text = {.color = UINT32_MAX}, + }, +}; + +/* key layouts + * + * define keys like: + * + * `{ + * "label", + * "SHIFT_LABEL", + * 1, + * [Code, Mod, Layout, Last], + * [KEY_CODE, Modifier], + * [&layout] + * },` + * + * - label: normal label for key + * + * - shift_label: label for key in shifted (uppercase) layout + * + * - width: column width of key + * + * - type: what kind of action this key peforms (emit keycode, toggle modifier, + * switch layout, or end the layout) + * + * - code: key scancode or modifier name (see + * `/usr/include/linux/input-event-codes.h` for scancode names, and + * `keyboard.h` for modifiers) + * + * - layout: layout to switch to when key is pressed + */ +static struct key keys_basic[] = { + {"q", "Q", 1, Code, KEY_Q}, + {"w", "W", 1, Code, KEY_W}, + {"e", "E", 1, Code, KEY_E}, + {"r", "R", 1, Code, KEY_R}, + {"t", "T", 1, Code, KEY_T}, + {"y", "Y", 1, Code, KEY_Y}, + {"u", "U", 1, Code, KEY_U}, + {"i", "I", 1, Code, KEY_I}, + {"o", "O", 1, Code, KEY_O}, + {"p", "P", 1, Code, KEY_P}, + + {"a", "A", 1, Code, KEY_A}, + {"s", "S", 1, Code, KEY_S}, + {"d", "D", 1, Code, KEY_D}, + {"f", "F", 1, Code, KEY_F}, + {"g", "G", 1, Code, KEY_G}, + {"h", "H", 1, Code, KEY_H}, + {"j", "J", 1, Code, KEY_J}, + {"k", "K", 1, Code, KEY_K}, + {"l", "L", 1, Code, KEY_L}, + {";", ":", 1, Code, KEY_SEMICOLON}, + + {"z", "Z", 1, Code, KEY_Z}, + {"x", "X", 1, Code, KEY_X}, + {"c", "C", 1, Code, KEY_C}, + {"v", "V", 1, Code, KEY_V}, + {"b", "B", 1, Code, KEY_B}, + {"n", "N", 1, Code, KEY_N}, + {"m", "M", 1, Code, KEY_M}, + {"Tab", "Tab", 1, Code, KEY_TAB}, + {"Bk", "Bk", 1, Code, KEY_BACKSPACE}, + {"Ret", "Ret", 1, Code, KEY_ENTER}, + + {"Sft", "Sft", 1, Mod, Shift}, + {"Sp", "Sp", 1, Mod, Super}, + {"Alt", "Alt", 1, Mod, AltGr}, + {"", "", 3, Code, KEY_SPACE}, + {"Esc", "Esc", 1, Code, KEY_ESC}, + {"Ctl", "Ctl", 1, Mod, Ctrl}, + {"Sm", "Sm", 2, Layout, 0, &layouts[Special]}, + + /* end of layout */ + {"", "", 0, Last}, +}; + +static struct key keys_special[] = { + {"1", "!", 1, Code, KEY_1}, + {"2", "@", 1, Code, KEY_2}, + {"3", "#", 1, Code, KEY_3}, + {"4", "$", 1, Code, KEY_4}, + {"5", "%", 1, Code, KEY_5}, + {"6", "^", 1, Code, KEY_6}, + {"7", "&", 1, Code, KEY_7}, + {"8", "*", 1, Code, KEY_8}, + {"9", "(", 1, Code, KEY_9}, + {"0", ")", 1, Code, KEY_0}, + + {"'", "\"", 1, Code, KEY_APOSTROPHE}, + {"`", "~", 1, Code, KEY_GRAVE}, + {"-", "_", 1, Code, KEY_MINUS}, + {"=", "+", 1, Code, KEY_EQUAL}, + {"[", "{", 1, Code, KEY_LEFTBRACE}, + {"]", "}", 1, Code, KEY_RIGHTBRACE}, + {",", "<", 1, Code, KEY_COMMA}, + {".", ">", 1, Code, KEY_DOT}, + {"/", "?", 1, Code, KEY_SLASH}, + {"\\", "|", 1, Code, KEY_BACKSLASH}, + + {"↑", "↑", 1, Code, KEY_UP}, + {"↓", "↓", 1, Code, KEY_DOWN}, + {"←", "←", 1, Code, KEY_LEFT}, + {"→", "→", 1, Code, KEY_RIGHT}, + {"Sp", "Sp", 1, Mod, Super}, + {"Alt", "Alt", 1, Mod, AltGr}, + {"Ctl", "Ctl", 1, Mod, Ctrl}, + {"Sft", "Sft", 1, Mod, Shift}, + + {"Ret", "Ret", 1, Code, KEY_ENTER}, + {"Bk", "Bk", 1, Code, KEY_BACKSPACE}, + {"", "", 3, Code, KEY_SPACE}, + {"Bsc", "Bsc", 2, Layout, 0, &layouts[Basic]}, + + /* end of layout */ + {"", "", 0, Last}, +}; diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..ab39d6d --- /dev/null +++ b/config.mk @@ -0,0 +1,2 @@ +VERSION = 0.0.1 +CFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=700 diff --git a/contrib/grab.png b/contrib/grab.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd51f94bf67eaa2e194b7402259c84132ab763f GIT binary patch literal 350859 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 jS*L|HjRAUHH2=Qod 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 literal 0 HcmV?d00001 diff --git a/drw.c b/drw.c new file mode 100644 index 0000000..fef0686 --- /dev/null +++ b/drw.c @@ -0,0 +1,71 @@ +#include "wld/wayland.h" +#include "wld/wld.h" +#include + +#include "drw.h" + +void +drw_init(struct drw *d, const char *fc_pattern, struct wl_display *dpy, + void *iface) { + d->wld = wld_wayland_create_context(dpy, WLD_ANY, iface); + d->fctx = wld_font_create_context(); + d->font = wld_font_open_name(d->fctx, fc_pattern); +} + +void +drwsurf_init(struct drw *d, struct drwsurf *ds, struct wl_surface *surf) { + ds->ctx = d; + ds->surf = surf; + ds->render = wld_create_renderer(d->wld); +} + +void +drwsurf_resize(struct drwsurf *ds, uint32_t w, uint32_t h) { + union wld_object obj; + + if (ds->buf) { + wld_buffer_unreference(ds->buf); + ds->buf = NULL; + ds->ref = NULL; + } + + ds->w = w; + ds->h = h; + + ds->buf = wld_create_buffer(ds->ctx->wld, w, h, WLD_FORMAT_ARGB8888, 0); + wld_set_target_buffer(ds->render, ds->buf); + + wld_export(ds->buf, WLD_WAYLAND_OBJECT_BUFFER, &obj); + ds->ref = obj.ptr; +} + +static void surface_frame_callback(void *data, struct wl_callback *cb, + uint32_t time); + +static struct wl_callback_listener frame_listener = {.done = + surface_frame_callback}; + +void +drwsurf_flip(struct drwsurf *ds) { + ds->cb = wl_surface_frame(ds->surf); + wl_callback_add_listener(ds->cb, &frame_listener, (void *)ds); + + if (ds->dirty) { + wl_surface_damage(ds->surf, 0, 0, ds->w, ds->h); + wld_flush(ds->render); + wld_set_target_buffer(ds->render, ds->buf); + ds->dirty = false; + } + + wl_surface_attach(ds->surf, ds->ref, 0, 0); + wl_surface_commit(ds->surf); +} + +void +surface_frame_callback(void *data, struct wl_callback *cb, uint32_t time) { + struct drwsurf *ds = (struct drwsurf *)data; + wl_callback_destroy(cb); + ds->cb = NULL; + + drwsurf_flip(ds); +} diff --git a/drw.h b/drw.h new file mode 100644 index 0000000..15abbb7 --- /dev/null +++ b/drw.h @@ -0,0 +1,37 @@ +#ifndef __DRW_H +#define __DRW_H + +struct drw; +struct drwsurf; + +void drw_init(struct drw *d, const char *fc_pattern, struct wl_display *dpy, + void *iface); +void drwsurf_init(struct drw *d, struct drwsurf *ds, struct wl_surface *surf); +void drwsurf_resize(struct drwsurf *ds, uint32_t w, uint32_t h); +void drwsurf_flip(struct drwsurf *ds); + +struct drw { + struct wld_context *wld; + struct wld_font_context *fctx; + struct wld_font *font; +}; + +struct drwsurf { + uint32_t w, h; + bool dirty; + + struct drw *ctx; + struct wl_surface *surf; + struct wld_renderer *render; + struct wld_buffer *buf; + struct wl_buffer *ref; + + struct wl_callback *cb; +}; + +typedef union { + uint8_t bgra[4]; + uint32_t color; +} Color; + +#endif diff --git a/keyboard.h b/keyboard.h new file mode 100644 index 0000000..f370ba1 --- /dev/null +++ b/keyboard.h @@ -0,0 +1,217 @@ +/* clang-format off */ +#define KBD_POINTS KBD_ROWS * KBD_COLS +/* clang-format on */ + +enum key_type; +enum key_modifier_type; +struct clr_scheme; +struct key; +struct layout; +struct kbd; + +enum key_type { + Pad = 0, + Code, + Mod, + Layout, + Last, +}; + +/* Modifiers passed to the virtual_keyboard protocol. They are based on + * wayland's wl_keyboard, which doesn't document them. + */ +enum key_modifier_type { + NoMod = 0, + Shift = 1, + CapsLock = 2, + Ctrl = 4, + Super = 64, + AltGr = 128, +}; + +struct clr_scheme { + Color fg; + Color bg; + Color high; + Color text; +}; + +struct key { + const char *label; + const char *shift_label; + const uint8_t width; + const enum key_type type; + + const uint32_t code; + struct layout *layout; + + uint8_t col, row; +}; + +struct layout { + struct key *keys; + struct key *gridpoints[KBD_POINTS]; +}; + +struct kbd { + struct layout *layout; + struct clr_scheme scheme; + + uint32_t w, h; + uint32_t kw, kh; + uint8_t mods; + struct key *last_press; + + struct drwsurf *surf; + struct zwp_virtual_keyboard_v1 *vkbd; +}; + +static inline void draw_inset(struct drwsurf *d, uint32_t x, uint32_t y, + uint32_t width, uint32_t height, uint32_t border, + uint32_t color); + +static void kbd_init_layout(struct layout *l); +static struct key *kbd_get_key(struct kbd *kb, uint32_t x, uint32_t y); +static void kbd_unpress_key(struct kbd *kb, uint32_t time); +static void kbd_press_key(struct kbd *kb, struct key *k, uint32_t time); +static void kbd_draw_key(struct kbd *kb, struct key *k, bool pressed); +static void kbd_draw_key(struct kbd *kb, struct key *k, bool pressed); +static void kbd_draw_layout(struct kbd *kb); +static void kbd_resize(struct kbd *kb, uint32_t w, uint32_t h); + +void +kbd_init_layout(struct layout *l) { + uint8_t i = 0, width = 0, ncol = 0, col = 0, row = 0; + + struct key *k = l->keys; + struct key **point = l->gridpoints, + **end_point = l->gridpoints + (KBD_POINTS); + + memset(point, 0, sizeof(uint8_t) * KBD_POINTS); + + while ((k->type != Last) && (point < end_point)) { + width = k->width; + ncol = col + width; + + if (ncol > KBD_COLS) { + width = KBD_COLS - col; + col = 0; + row += 1; + + for (i = 0; (i < width) && (point < end_point); i++, point++) { + } + continue; + } + + k->col = col; + k->row = row; + col = ncol; + + for (i = 0; (i < width) && (point < end_point); i++, point++) { + *point = k; + } + + k++; + } +} + +struct key * +kbd_get_key(struct kbd *kb, uint32_t x, uint32_t y) { + struct layout *l = kb->layout; + uint32_t col = KBD_COLS * ((float)x / (float)kb->w); + uint32_t row = KBD_ROWS * ((float)y / (float)kb->h); + + return l->gridpoints[(row * KBD_COLS) + col]; +} + +void +kbd_unpress_key(struct kbd *kb, uint32_t time) { + if (kb->last_press) { + kbd_draw_key(kb, kb->last_press, false); + kb->surf->dirty = true; + + zwp_virtual_keyboard_v1_key(kb->vkbd, time, kb->last_press->code, + WL_KEYBOARD_KEY_STATE_RELEASED); + kb->last_press = NULL; + } +} + +void +kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) { + switch (k->type) { + case Code: + kb->last_press = k; + kbd_draw_key(kb, k, true); + zwp_virtual_keyboard_v1_key(kb->vkbd, time, kb->last_press->code, + WL_KEYBOARD_KEY_STATE_PRESSED); + break; + case Mod: + kb->mods ^= k->code; + if (k->code == Shift) { + kbd_draw_layout(kb); + } + kbd_draw_key(kb, k, kb->mods & k->code); + zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0); + break; + case Layout: + kb->layout = k->layout; + kbd_draw_layout(kb); + default: + break; + } + + kb->surf->dirty = true; +} + +void +kbd_draw_key(struct kbd *kb, struct key *k, bool pressed) { + struct drwsurf *d = kb->surf; + const char *label = (kb->mods & Shift) ? k->shift_label : k->label; + Color *fill = pressed ? &kb->scheme.high : &kb->scheme.fg; + uint32_t x = k->col * kb->kw, y = k->row * kb->kh, width = k->width * kb->kw; + + draw_inset(d, x, y, width, kb->kh, KBD_KEY_BORDER, fill->color); + wld_draw_text(d->render, d->ctx->font, kb->scheme.text.color, + x + (width * 0.35), y + (kb->kh / 2), label, -1, NULL); +} + +void +kbd_draw_layout(struct kbd *kb) { + struct drwsurf *d = kb->surf; + struct key *next_key = kb->layout->keys; + bool pressed = false; + + wld_fill_rectangle(d->render, kb->scheme.bg.color, 0, 0, kb->w, kb->h); + + while (next_key->type != Last) { + if (next_key->type == Pad) { + next_key++; + continue; + } + pressed = next_key->type == Mod && kb->mods & next_key->code; + kbd_draw_key(kb, next_key, pressed); + next_key++; + } +} + +void +kbd_resize(struct kbd *kb, uint32_t w, uint32_t h) { + struct drwsurf *d = kb->surf; + + kb->w = w; + kb->h = h; + + kb->kw = (float)w / (float)KBD_COLS; + kb->kh = (float)h / (float)KBD_ROWS; + + drwsurf_resize(d, w, h); + kbd_draw_layout(kb); + d->dirty = true; +} + +void +draw_inset(struct drwsurf *d, uint32_t x, uint32_t y, uint32_t width, + uint32_t height, uint32_t border, uint32_t color) { + wld_fill_rectangle(d->render, color, x + border, y + border, width - border, + height - border); +} diff --git a/keymap.h b/keymap.h new file mode 100644 index 0000000..9123af8 --- /dev/null +++ b/keymap.h @@ -0,0 +1,2925 @@ +static const char keymap_str[] = "xkb_keymap {\ +xkb_keycodes \"(unnamed)\" {\ + minimum = 8;\ + maximum = 255;\ + = 9;\ + = 10;\ + = 11;\ + = 12;\ + = 13;\ + = 14;\ + = 15;\ + = 16;\ + = 17;\ + = 18;\ + = 19;\ + = 20;\ + = 21;\ + = 22;\ + = 23;\ + = 24;\ + = 25;\ + = 26;\ + = 27;\ + = 28;\ + = 29;\ + = 30;\ + = 31;\ + = 32;\ + = 33;\ + = 34;\ + = 35;\ + = 36;\ + = 37;\ + = 38;\ + = 39;\ + = 40;\ + = 41;\ + = 42;\ + = 43;\ + = 44;\ + = 45;\ + = 46;\ + = 47;\ + = 48;\ + = 49;\ + = 50;\ + = 51;\ + = 52;\ + = 53;\ + = 54;\ + = 55;\ + = 56;\ + = 57;\ + = 58;\ + = 59;\ + = 60;\ + = 61;\ + = 62;\ + = 63;\ + = 64;\ + = 65;\ + = 66;\ + = 67;\ + = 68;\ + = 69;\ + = 70;\ + = 71;\ + = 72;\ + = 73;\ + = 74;\ + = 75;\ + = 76;\ + = 77;\ + = 78;\ + = 79;\ + = 80;\ + = 81;\ + = 82;\ + = 83;\ + = 84;\ + = 85;\ + = 86;\ + = 87;\ + = 88;\ + = 89;\ + = 90;\ + = 91;\ + = 92;\ + = 94;\ + = 95;\ + = 96;\ + = 97;\ + = 98;\ + = 99;\ + = 100;\ + = 101;\ + = 102;\ + = 103;\ + = 104;\ + = 105;\ + = 106;\ + = 107;\ + = 108;\ + = 109;\ + = 110;\ + = 111;\ + = 112;\ + = 113;\ + = 114;\ + = 115;\ + = 116;\ + = 117;\ + = 118;\ + = 119;\ + = 120;\ + = 121;\ + = 122;\ + = 123;\ + = 124;\ + = 125;\ + = 126;\ + = 127;\ + = 128;\ + = 129;\ + = 130;\ + = 131;\ + = 132;\ + = 133;\ + = 134;\ + = 135;\ + = 136;\ + = 137;\ + = 138;\ + = 139;\ + = 140;\ + = 141;\ + = 142;\ + = 143;\ + = 144;\ + = 145;\ + = 146;\ + = 147;\ + = 148;\ + = 149;\ + = 150;\ + = 151;\ + = 152;\ + = 153;\ + = 154;\ + = 155;\ + = 156;\ + = 157;\ + = 158;\ + = 159;\ + = 160;\ + = 161;\ + = 162;\ + = 163;\ + = 164;\ + = 165;\ + = 166;\ + = 167;\ + = 168;\ + = 169;\ + = 170;\ + = 171;\ + = 172;\ + = 173;\ + = 174;\ + = 175;\ + = 176;\ + = 177;\ + = 178;\ + = 179;\ + = 180;\ + = 181;\ + = 182;\ + = 183;\ + = 184;\ + = 185;\ + = 186;\ + = 187;\ + = 188;\ + = 189;\ + = 190;\ + = 191;\ + = 192;\ + = 193;\ + = 194;\ + = 195;\ + = 196;\ + = 197;\ + = 198;\ + = 199;\ + = 200;\ + = 201;\ + = 202;\ + = 203;\ + = 204;\ + = 205;\ + = 206;\ + = 207;\ + = 208;\ + = 209;\ + = 210;\ + = 211;\ + = 212;\ + = 213;\ + = 214;\ + = 215;\ + = 216;\ + = 217;\ + = 218;\ + = 219;\ + = 220;\ + = 221;\ + = 222;\ + = 223;\ + = 224;\ + = 225;\ + = 226;\ + = 227;\ + = 228;\ + = 229;\ + = 230;\ + = 231;\ + = 232;\ + = 233;\ + = 234;\ + = 235;\ + = 236;\ + = 237;\ + = 238;\ + = 239;\ + = 240;\ + = 241;\ + = 242;\ + = 243;\ + = 244;\ + = 245;\ + = 246;\ + = 247;\ + = 248;\ + = 249;\ + = 250;\ + = 251;\ + = 252;\ + = 253;\ + = 254;\ + = 255;\ + indicator 1 = \"Caps Lock\";\ + indicator 2 = \"Num Lock\";\ + indicator 3 = \"Scroll Lock\";\ + indicator 4 = \"Compose\";\ + indicator 5 = \"Kana\";\ + indicator 6 = \"Sleep\";\ + indicator 7 = \"Suspend\";\ + indicator 8 = \"Mute\";\ + indicator 9 = \"Misc\";\ + indicator 10 = \"Mail\";\ + indicator 11 = \"Charging\";\ + indicator 12 = \"Shift Lock\";\ + indicator 13 = \"Group 2\";\ + indicator 14 = \"Mouse Keys\";\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ +};\ +\ +xkb_types \"(unnamed)\" {\ + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;\ +\ + type \"ONE_LEVEL\" {\ + modifiers= none;\ + level_name[Level1]= \"Any\";\ + };\ + type \"TWO_LEVEL\" {\ + modifiers= Shift;\ + map[Shift]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + };\ + type \"ALPHABETIC\" {\ + modifiers= Shift+Lock;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Caps\";\ + };\ + type \"SHIFT+ALT\" {\ + modifiers= Shift+Alt;\ + map[Shift+Alt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift+Alt\";\ + };\ + type \"PC_SUPER_LEVEL2\" {\ + modifiers= Mod4;\ + map[Mod4]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Super\";\ + };\ + type \"PC_CONTROL_LEVEL2\" {\ + modifiers= Control;\ + map[Control]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Control\";\ + };\ + type \"PC_LCONTROL_LEVEL2\" {\ + modifiers= LControl;\ + map[LControl]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"LControl\";\ + };\ + type \"PC_RCONTROL_LEVEL2\" {\ + modifiers= RControl;\ + map[RControl]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"RControl\";\ + };\ + type \"PC_ALT_LEVEL2\" {\ + modifiers= Alt;\ + map[Alt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Alt\";\ + };\ + type \"PC_LALT_LEVEL2\" {\ + modifiers= LAlt;\ + map[LAlt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"LAlt\";\ + };\ + type \"PC_RALT_LEVEL2\" {\ + modifiers= RAlt;\ + map[RAlt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"RAlt\";\ + };\ + type \"CTRL+ALT\" {\ + modifiers= Shift+Control+Alt+LevelThree;\ + map[Shift]= Level2;\ + preserve[Shift]= Shift;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + preserve[Shift+LevelThree]= Shift;\ + map[Control+Alt]= Level5;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"Ctrl+Alt\";\ + };\ + type \"LOCAL_EIGHT_LEVEL\" {\ + modifiers= Shift+Lock+Control+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level4;\ + map[Control]= Level5;\ + map[Shift+Lock+Control]= Level5;\ + map[Shift+Control]= Level6;\ + map[Lock+Control]= Level6;\ + map[Control+LevelThree]= Level7;\ + map[Shift+Lock+Control+LevelThree]= Level7;\ + map[Shift+Control+LevelThree]= Level8;\ + map[Lock+Control+LevelThree]= Level8;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Level3\";\ + level_name[Level4]= \"Shift Level3\";\ + level_name[Level5]= \"Ctrl\";\ + level_name[Level6]= \"Shift Ctrl\";\ + level_name[Level7]= \"Level3 Ctrl\";\ + level_name[Level8]= \"Shift Level3 Ctrl\";\ + };\ + type \"THREE_LEVEL\" {\ + modifiers= Shift+LevelThree;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Level3\";\ + };\ + type \"EIGHT_LEVEL\" {\ + modifiers= Shift+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_ALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level4;\ + map[Shift+Lock+LevelThree]= Level3;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + map[Lock+LevelFive]= Level6;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[Lock+LevelThree+LevelFive]= Level8;\ + map[Shift+Lock+LevelThree+LevelFive]= Level7;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_LEVEL_FIVE_LOCK\" {\ + modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + preserve[Shift+LevelFive]= Shift;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[NumLock]= Level5;\ + map[Shift+NumLock]= Level6;\ + preserve[Shift+NumLock]= Shift;\ + map[NumLock+LevelThree]= Level7;\ + map[Shift+NumLock+LevelThree]= Level8;\ + map[Shift+NumLock+LevelFive]= Level2;\ + map[NumLock+LevelThree+LevelFive]= Level3;\ + map[Shift+NumLock+LevelThree+LevelFive]= Level4;\ + map[Shift+Lock]= Level2;\ + map[Lock+LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level4;\ + map[Lock+LevelFive]= Level5;\ + map[Shift+Lock+LevelFive]= Level6;\ + preserve[Shift+Lock+LevelFive]= Shift;\ + map[Lock+LevelThree+LevelFive]= Level7;\ + map[Shift+Lock+LevelThree+LevelFive]= Level8;\ + map[Lock+NumLock]= Level5;\ + map[Shift+Lock+NumLock]= Level6;\ + preserve[Shift+Lock+NumLock]= Shift;\ + map[Lock+NumLock+LevelThree]= Level7;\ + map[Shift+Lock+NumLock+LevelThree]= Level8;\ + map[Shift+Lock+NumLock+LevelFive]= Level2;\ + map[Lock+NumLock+LevelThree+LevelFive]= Level3;\ + map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK\" {\ + modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + preserve[Shift+LevelFive]= Shift;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[NumLock]= Level5;\ + map[Shift+NumLock]= Level6;\ + preserve[Shift+NumLock]= Shift;\ + map[NumLock+LevelThree]= Level7;\ + map[Shift+NumLock+LevelThree]= Level8;\ + map[Shift+NumLock+LevelFive]= Level2;\ + map[NumLock+LevelThree+LevelFive]= Level3;\ + map[Shift+NumLock+LevelThree+LevelFive]= Level4;\ + map[Lock]= Level2;\ + map[Lock+LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level4;\ + map[Lock+LevelFive]= Level5;\ + map[Shift+Lock+LevelFive]= Level6;\ + map[Lock+LevelThree+LevelFive]= Level7;\ + map[Shift+Lock+LevelThree+LevelFive]= Level8;\ + map[Lock+NumLock]= Level5;\ + map[Shift+Lock+NumLock]= Level6;\ + map[Lock+NumLock+LevelThree]= Level7;\ + map[Shift+Lock+NumLock+LevelThree]= Level8;\ + map[Lock+NumLock+LevelFive]= Level2;\ + map[Lock+NumLock+LevelThree+LevelFive]= Level4;\ + map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_SEMIALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level3;\ + preserve[Lock+LevelThree]= Lock;\ + map[Shift+Lock+LevelThree]= Level4;\ + preserve[Shift+Lock+LevelThree]= Lock;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + map[Lock+LevelFive]= Level6;\ + preserve[Lock+LevelFive]= Lock;\ + map[Shift+Lock+LevelFive]= Level6;\ + preserve[Shift+Lock+LevelFive]= Lock;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[Lock+LevelThree+LevelFive]= Level7;\ + preserve[Lock+LevelThree+LevelFive]= Lock;\ + map[Shift+Lock+LevelThree+LevelFive]= Level8;\ + preserve[Shift+Lock+LevelThree+LevelFive]= Lock;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"FOUR_LEVEL\" {\ + modifiers= Shift+LevelThree;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_ALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level4;\ + map[Shift+Lock+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_SEMIALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level3;\ + preserve[Lock+LevelThree]= Lock;\ + map[Shift+Lock+LevelThree]= Level4;\ + preserve[Shift+Lock+LevelThree]= Lock;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_MIXED_KEYPAD\" {\ + modifiers= Shift+NumLock+LevelThree;\ + map[NumLock]= Level2;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[NumLock+LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Shift+NumLock+LevelThree]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Number\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_X\" {\ + modifiers= Shift+Control+Alt+LevelThree;\ + map[LevelThree]= Level2;\ + map[Shift+LevelThree]= Level3;\ + map[Control+Alt]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Alt Base\";\ + level_name[Level3]= \"Shift Alt\";\ + level_name[Level4]= \"Ctrl+Alt\";\ + };\ + type \"SEPARATE_CAPS_AND_SHIFT_ALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level4;\ + preserve[Lock]= Lock;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level3;\ + preserve[Lock+LevelThree]= Lock;\ + map[Shift+Lock+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"AltGr Base\";\ + level_name[Level4]= \"Shift AltGr\";\ + };\ + type \"FOUR_LEVEL_PLUS_LOCK\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock]= Level5;\ + map[Shift+Lock]= Level2;\ + map[Lock+LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"Lock\";\ + };\ + type \"KEYPAD\" {\ + modifiers= Shift+NumLock;\ + map[Shift]= Level2;\ + map[NumLock]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Number\";\ + };\ + type \"FOUR_LEVEL_KEYPAD\" {\ + modifiers= Shift+NumLock+LevelThree;\ + map[Shift]= Level2;\ + map[NumLock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[NumLock+LevelThree]= Level4;\ + map[Shift+NumLock+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Number\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Alt Number\";\ + };\ +};\ +\ +xkb_compatibility \"(unnamed)\" {\ + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;\ +\ + interpret.useModMapMods= AnyLevel;\ + interpret.repeat= False;\ + interpret ISO_Level2_Latch+Exactly(Shift) {\ + useModMapMods=level1;\ + action= LatchMods(modifiers=Shift,clearLocks,latchToLock);\ + };\ + interpret Shift_Lock+AnyOf(Shift+Lock) {\ + action= LockMods(modifiers=Shift);\ + };\ + interpret Num_Lock+AnyOf(all) {\ + virtualModifier= NumLock;\ + action= LockMods(modifiers=NumLock);\ + };\ + interpret ISO_Level3_Shift+AnyOf(all) {\ + virtualModifier= LevelThree;\ + useModMapMods=level1;\ + action= SetMods(modifiers=LevelThree,clearLocks);\ + };\ + interpret ISO_Level3_Latch+AnyOf(all) {\ + virtualModifier= LevelThree;\ + useModMapMods=level1;\ + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);\ + };\ + interpret ISO_Level3_Lock+AnyOf(all) {\ + virtualModifier= LevelThree;\ + useModMapMods=level1;\ + action= LockMods(modifiers=LevelThree);\ + };\ + interpret Alt_L+AnyOf(all) {\ + virtualModifier= Alt;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Alt_R+AnyOf(all) {\ + virtualModifier= Alt;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Meta_L+AnyOf(all) {\ + virtualModifier= Meta;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Meta_R+AnyOf(all) {\ + virtualModifier= Meta;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Super_L+AnyOf(all) {\ + virtualModifier= Super;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Super_R+AnyOf(all) {\ + virtualModifier= Super;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Hyper_L+AnyOf(all) {\ + virtualModifier= Hyper;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Hyper_R+AnyOf(all) {\ + virtualModifier= Hyper;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Scroll_Lock+AnyOf(all) {\ + virtualModifier= ScrollLock;\ + action= LockMods(modifiers=modMapMods);\ + };\ + interpret ISO_Level5_Shift+AnyOf(all) {\ + virtualModifier= LevelFive;\ + useModMapMods=level1;\ + action= SetMods(modifiers=LevelFive,clearLocks);\ + };\ + interpret ISO_Level5_Latch+AnyOf(all) {\ + virtualModifier= LevelFive;\ + useModMapMods=level1;\ + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);\ + };\ + interpret ISO_Level5_Lock+AnyOf(all) {\ + virtualModifier= LevelFive;\ + useModMapMods=level1;\ + action= LockMods(modifiers=LevelFive);\ + };\ + interpret Mode_switch+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= SetGroup(group=+1);\ + };\ + interpret ISO_Level3_Shift+AnyOfOrNone(all) {\ + action= SetMods(modifiers=LevelThree,clearLocks);\ + };\ + interpret ISO_Level3_Latch+AnyOfOrNone(all) {\ + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);\ + };\ + interpret ISO_Level3_Lock+AnyOfOrNone(all) {\ + action= LockMods(modifiers=LevelThree);\ + };\ + interpret ISO_Group_Latch+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= LatchGroup(group=2);\ + };\ + interpret ISO_Next_Group+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= LockGroup(group=+1);\ + };\ + interpret ISO_Prev_Group+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= LockGroup(group=-1);\ + };\ + interpret ISO_First_Group+AnyOfOrNone(all) {\ + action= LockGroup(group=1);\ + };\ + interpret ISO_Last_Group+AnyOfOrNone(all) {\ + action= LockGroup(group=2);\ + };\ + interpret KP_1+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+1);\ + };\ + interpret KP_End+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+1);\ + };\ + interpret KP_2+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=+1);\ + };\ + interpret KP_Down+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=+1);\ + };\ + interpret KP_3+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+1);\ + };\ + interpret KP_Next+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+1);\ + };\ + interpret KP_4+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+0);\ + };\ + interpret KP_Left+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+0);\ + };\ + interpret KP_6+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+0);\ + };\ + interpret KP_Right+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+0);\ + };\ + interpret KP_7+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=-1);\ + };\ + interpret KP_Home+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=-1);\ + };\ + interpret KP_8+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=-1);\ + };\ + interpret KP_Up+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=-1);\ + };\ + interpret KP_9+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=-1);\ + };\ + interpret KP_Prior+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=-1);\ + };\ + interpret KP_5+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default);\ + };\ + interpret KP_Begin+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default);\ + };\ + interpret KP_F2+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=1);\ + };\ + interpret KP_Divide+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=1);\ + };\ + interpret KP_F3+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=2);\ + };\ + interpret KP_Multiply+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=2);\ + };\ + interpret KP_F4+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=3);\ + };\ + interpret KP_Subtract+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=3);\ + };\ + interpret KP_Separator+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default,count=2);\ + };\ + interpret KP_Add+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default,count=2);\ + };\ + interpret KP_0+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=lock);\ + };\ + interpret KP_Insert+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=lock);\ + };\ + interpret KP_Decimal+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=unlock);\ + };\ + interpret KP_Delete+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=unlock);\ + };\ + interpret F25+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=1);\ + };\ + interpret F26+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=2);\ + };\ + interpret F27+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=-1);\ + };\ + interpret F29+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=-1);\ + };\ + interpret F31+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default);\ + };\ + interpret F33+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+1);\ + };\ + interpret F35+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+1);\ + };\ + interpret Pointer_Button_Dflt+AnyOfOrNone(all) {\ + action= PtrBtn(button=default);\ + };\ + interpret Pointer_Button1+AnyOfOrNone(all) {\ + action= PtrBtn(button=1);\ + };\ + interpret Pointer_Button2+AnyOfOrNone(all) {\ + action= PtrBtn(button=2);\ + };\ + interpret Pointer_Button3+AnyOfOrNone(all) {\ + action= PtrBtn(button=3);\ + };\ + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {\ + action= PtrBtn(button=default,count=2);\ + };\ + interpret Pointer_DblClick1+AnyOfOrNone(all) {\ + action= PtrBtn(button=1,count=2);\ + };\ + interpret Pointer_DblClick2+AnyOfOrNone(all) {\ + action= PtrBtn(button=2,count=2);\ + };\ + interpret Pointer_DblClick3+AnyOfOrNone(all) {\ + action= PtrBtn(button=3,count=2);\ + };\ + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=default);\ + };\ + interpret Pointer_Drag1+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=1);\ + };\ + interpret Pointer_Drag2+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=2);\ + };\ + interpret Pointer_Drag3+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=3);\ + };\ + interpret Pointer_EnableKeys+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeys);\ + };\ + interpret Pointer_Accelerate+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeysAccel);\ + };\ + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {\ + action= SetPtrDflt(affect=button,button=+1);\ + };\ + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {\ + action= SetPtrDflt(affect=button,button=-1);\ + };\ + interpret AccessX_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=AccessXKeys);\ + };\ + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=AccessXFeedback);\ + };\ + interpret RepeatKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=RepeatKeys);\ + };\ + interpret SlowKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=SlowKeys);\ + };\ + interpret BounceKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=BounceKeys);\ + };\ + interpret StickyKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=StickyKeys);\ + };\ + interpret MouseKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeys);\ + };\ + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeysAccel);\ + };\ + interpret Overlay1_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=none);\ + };\ + interpret Overlay2_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=none);\ + };\ + interpret AudibleBell_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=AudibleBell);\ + };\ + interpret Terminate_Server+AnyOfOrNone(all) {\ + action= Terminate();\ + };\ + interpret Alt_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Alt,clearLocks);\ + };\ + interpret Alt_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Alt,clearLocks);\ + };\ + interpret Meta_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Meta,clearLocks);\ + };\ + interpret Meta_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Meta,clearLocks);\ + };\ + interpret Super_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Super,clearLocks);\ + };\ + interpret Super_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Super,clearLocks);\ + };\ + interpret Hyper_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Hyper,clearLocks);\ + };\ + interpret Hyper_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Hyper,clearLocks);\ + };\ + interpret Shift_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Shift,clearLocks);\ + };\ + interpret XF86Switch_VT_1+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=1,!same);\ + };\ + interpret XF86Switch_VT_2+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=2,!same);\ + };\ + interpret XF86Switch_VT_3+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=3,!same);\ + };\ + interpret XF86Switch_VT_4+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=4,!same);\ + };\ + interpret XF86Switch_VT_5+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=5,!same);\ + };\ + interpret XF86Switch_VT_6+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=6,!same);\ + };\ + interpret XF86Switch_VT_7+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=7,!same);\ + };\ + interpret XF86Switch_VT_8+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=8,!same);\ + };\ + interpret XF86Switch_VT_9+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=9,!same);\ + };\ + interpret XF86Switch_VT_10+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=10,!same);\ + };\ + interpret XF86Switch_VT_11+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=11,!same);\ + };\ + interpret XF86Switch_VT_12+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=12,!same);\ + };\ + interpret XF86LogGrabInfo+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);\ + };\ + interpret XF86LogWindowTree+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);\ + };\ + interpret XF86Next_VMode+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);\ + };\ + interpret XF86Prev_VMode+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);\ + };\ + interpret ISO_Level5_Shift+AnyOfOrNone(all) {\ + action= SetMods(modifiers=LevelFive,clearLocks);\ + };\ + interpret ISO_Level5_Latch+AnyOfOrNone(all) {\ + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);\ + };\ + interpret ISO_Level5_Lock+AnyOfOrNone(all) {\ + action= LockMods(modifiers=LevelFive);\ + };\ + interpret Caps_Lock+AnyOfOrNone(all) {\ + action= LockMods(modifiers=Lock);\ + };\ + interpret Any+Exactly(Lock) {\ + action= LockMods(modifiers=Lock);\ + };\ + interpret Any+AnyOf(all) {\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + indicator \"Caps Lock\" {\ + whichModState= locked;\ + modifiers= Lock;\ + };\ + indicator \"Num Lock\" {\ + whichModState= locked;\ + modifiers= NumLock;\ + };\ + indicator \"Scroll Lock\" {\ + whichModState= locked;\ + modifiers= ScrollLock;\ + };\ + indicator \"Shift Lock\" {\ + whichModState= locked;\ + modifiers= Shift;\ + };\ + indicator \"Group 2\" {\ + groups= 0xfe;\ + };\ + indicator \"Mouse Keys\" {\ + controls= MouseKeys;\ + };\ +};\ +\ +xkb_symbols \"(unnamed)\" {\ + name[group1]=\"English (US)\";\ +\ + key { [ Escape ] };\ + key { [ 1, exclam ] };\ + key { [ 2, at ] };\ + key { [ 3, numbersign ] };\ + key { [ 4, dollar ] };\ + key { [ 5, percent ] };\ + key { [ 6, asciicircum ] };\ + key { [ 7, ampersand ] };\ + key { [ 8, asterisk ] };\ + key { [ 9, parenleft ] };\ + key { [ 0, parenright ] };\ + key { [ minus, underscore ] };\ + key { [ equal, plus ] };\ + key { [ BackSpace, BackSpace ] };\ + key { [ Tab, ISO_Left_Tab ] };\ + key { [ q, Q, 1 ] };\ + key { [ w, W, 2 ] };\ + key { [ e, E, 3 ] };\ + key { [ r, R, 4 ] };\ + key { [ t, T, 5 ] };\ + key { [ y, Y, 6 ] };\ + key { [ u, U, 7 ] };\ + key { [ i, I, 8 ] };\ + key { [ o, O, 9 ] };\ + key { [ p, P, 0 ] };\ + key { [ bracketleft, braceleft ] };\ + key { [ bracketright, braceright ] };\ + key { [ Return ] };\ + key { [ Control_L ] };\ + key { [ a, A, minus ] };\ + key { [ s, S, at ] };\ + key { [ d, D, asterisk ] };\ + key { [ f, F, asciicircum ] };\ + key { [ g, G, colon ] };\ + key { [ h, H, semicolon ] };\ + key { [ j, J, parenleft ] };\ + key { [ k, K, parenright ] };\ + key { [ l, L, asciitilde ] };\ + key { [ semicolon, colon ] };\ + key { [ apostrophe, quotedbl ] };\ + key { [ grave, asciitilde ] };\ + key { [ Shift_L ] };\ + key { [ backslash, bar ] };\ + key { [ z, Z, slash ] };\ + key { [ x, X, apostrophe ] };\ + key { [ c, C, quotedbl ] };\ + key { [ v, V, plus ] };\ + key { [ b, B, equal ] };\ + key { [ n, N, question ] };\ + key { [ m, M, exclam ] };\ + key { [ comma, less, backslash] };\ + key { [ period, greater, bar ] };\ + key { [ slash, question ] };\ + key { [ Shift_R ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ]\ + };\ + key { [ Alt_L, Meta_L ] };\ + key { [ space ] };\ + key { [ Caps_Lock ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ]\ + };\ + key { [ Num_Lock ] };\ + key { [ Scroll_Lock ] };\ + key { [ KP_Home, KP_7 ] };\ + key { [ KP_Up, KP_8 ] };\ + key { [ KP_Prior, KP_9 ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ]\ + };\ + key { [ KP_Left, KP_4 ] };\ + key { [ KP_Begin, KP_5 ] };\ + key { [ KP_Right, KP_6 ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ]\ + };\ + key { [ KP_End, KP_1 ] };\ + key { [ KP_Down, KP_2 ] };\ + key { [ KP_Next, KP_3 ] };\ + key { [ KP_Insert, KP_0 ] };\ + key { [ KP_Delete, KP_Decimal ] };\ + key { [ ISO_Level3_Shift ] };\ + key { [ less, greater, bar, brokenbar ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ]\ + };\ + key { [ Katakana ] };\ + key { [ Hiragana ] };\ + key { [ Henkan_Mode ] };\ + key { [ Hiragana_Katakana ] };\ + key { [ Muhenkan ] };\ + key { [ KP_Enter ] };\ + key { [ Control_R ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ]\ + };\ + key {\ + type= \"PC_ALT_LEVEL2\",\ + symbols[Group1]= [ Print, Sys_Req ]\ + };\ + key {\ + type= \"TWO_LEVEL\",\ + symbols[Group1]= [ Alt_R, Meta_R ]\ + };\ + key { [ Linefeed ] };\ + key { [ Home ] };\ + key { [ Up ] };\ + key { [ Prior ] };\ + key { [ Left ] };\ + key { [ Right ] };\ + key { [ End ] };\ + key { [ Down ] };\ + key { [ Next ] };\ + key { [ Insert ] };\ + key { [ Delete ] };\ + key { [ XF86AudioMute ] };\ + key { [ XF86AudioLowerVolume ] };\ + key { [ XF86AudioRaiseVolume ] };\ + key { [ XF86PowerOff ] };\ + key { [ KP_Equal ] };\ + key { [ plusminus ] };\ + key {\ + type= \"PC_CONTROL_LEVEL2\",\ + symbols[Group1]= [ Pause, Break ]\ + };\ + key { [ XF86LaunchA ] };\ + key { [ KP_Decimal, KP_Decimal ] };\ + key { [ Hangul ] };\ + key { [ Hangul_Hanja ] };\ + key { [ Super_L ] };\ + key { [ Super_R ] };\ + key { [ Menu ] };\ + key { [ Cancel ] };\ + key { [ Redo ] };\ + key { [ SunProps ] };\ + key { [ Undo ] };\ + key { [ SunFront ] };\ + key { [ XF86Copy ] };\ + key { [ XF86Open ] };\ + key { [ XF86Paste ] };\ + key { [ Find ] };\ + key { [ XF86Cut ] };\ + key { [ Help ] };\ + key { [ XF86MenuKB ] };\ + key { [ XF86Calculator ] };\ + key { [ XF86Sleep ] };\ + key { [ XF86WakeUp ] };\ + key { [ XF86Explorer ] };\ + key { [ XF86Send ] };\ + key { [ XF86Xfer ] };\ + key { [ XF86Launch1 ] };\ + key { [ XF86Launch2 ] };\ + key { [ XF86WWW ] };\ + key { [ XF86DOS ] };\ + key { [ XF86ScreenSaver ] };\ + key { [ XF86RotateWindows ] };\ + key { [ XF86TaskPane ] };\ + key { [ XF86Mail ] };\ + key { [ XF86Favorites ] };\ + key { [ XF86MyComputer ] };\ + key { [ XF86Back ] };\ + key { [ XF86Forward ] };\ + key { [ XF86Eject ] };\ + key { [ XF86Eject, XF86Eject ] };\ + key { [ XF86AudioNext ] };\ + key { [ XF86AudioPlay, XF86AudioPause ] };\ + key { [ XF86AudioPrev ] };\ + key { [ XF86AudioStop, XF86Eject ] };\ + key { [ XF86AudioRecord ] };\ + key { [ XF86AudioRewind ] };\ + key { [ XF86Phone ] };\ + key { [ XF86Tools ] };\ + key { [ XF86HomePage ] };\ + key { [ XF86Reload ] };\ + key { [ XF86Close ] };\ + key { [ XF86ScrollUp ] };\ + key { [ XF86ScrollDown ] };\ + key { [ parenleft ] };\ + key { [ parenright ] };\ + key { [ XF86New ] };\ + key { [ Redo ] };\ + key { [ XF86Tools ] };\ + key { [ XF86Launch5 ] };\ + key { [ XF86Launch6 ] };\ + key { [ XF86Launch7 ] };\ + key { [ XF86Launch8 ] };\ + key { [ XF86Launch9 ] };\ + key { [ XF86AudioMicMute ] };\ + key { [ XF86TouchpadToggle ] };\ + key { [ XF86TouchpadOn ] };\ + key { [ XF86TouchpadOff ] };\ + key { [ Mode_switch ] };\ + key { [ NoSymbol, Alt_L ] };\ + key { [ NoSymbol, Meta_L ] };\ + key { [ NoSymbol, Super_L ] };\ + key { [ NoSymbol, Hyper_L ] };\ + key { [ XF86AudioPlay ] };\ + key { [ XF86AudioPause ] };\ + key { [ XF86Launch3 ] };\ + key { [ XF86Launch4 ] };\ + key { [ XF86LaunchB ] };\ + key { [ XF86Suspend ] };\ + key { [ XF86Close ] };\ + key { [ XF86AudioPlay ] };\ + key { [ XF86AudioForward ] };\ + key { [ Print ] };\ + key { [ XF86WebCam ] };\ + key { [ XF86AudioPreset ] };\ + key { [ XF86Mail ] };\ + key { [ XF86Messenger ] };\ + key { [ XF86Search ] };\ + key { [ XF86Go ] };\ + key { [ XF86Finance ] };\ + key { [ XF86Game ] };\ + key { [ XF86Shop ] };\ + key { [ Cancel ] };\ + key { [ XF86MonBrightnessDown ] };\ + key { [ XF86MonBrightnessUp ] };\ + key { [ XF86AudioMedia ] };\ + key { [ XF86Display ] };\ + key { [ XF86KbdLightOnOff ] };\ + key { [ XF86KbdBrightnessDown ] };\ + key { [ XF86KbdBrightnessUp ] };\ + key { [ XF86Send ] };\ + key { [ XF86Reply ] };\ + key { [ XF86MailForward ] };\ + key { [ XF86Save ] };\ + key { [ XF86Documents ] };\ + key { [ XF86Battery ] };\ + key { [ XF86Bluetooth ] };\ + key { [ XF86WLAN ] };\ + key { [ XF86UWB ] };\ + key { [ XF86WWAN ] };\ + key { [ XF86RFKill ] };\ + modifier_map Shift { , };\ + modifier_map Lock { };\ + modifier_map Control { , };\ + modifier_map Mod1 { , , };\ + modifier_map Mod2 { };\ + modifier_map Mod4 { , , , };\ + modifier_map Mod5 { , };\ +};\ +\ +};\ +"; + +static const char keymap_polish[] = "xkb_keymap {\ + xkb_keycodes \"(unnamed)\" {\ + minimum = 8;\ + maximum = 255;\ + = 9;\ + = 10;\ + = 11;\ + = 12;\ + = 13;\ + = 14;\ + = 15;\ + = 16;\ + = 17;\ + = 18;\ + = 19;\ + = 20;\ + = 21;\ + = 22;\ + = 23;\ + = 24;\ + = 25;\ + = 26;\ + = 27;\ + = 28;\ + = 29;\ + = 30;\ + = 31;\ + = 32;\ + = 33;\ + = 34;\ + = 35;\ + = 36;\ + = 37;\ + = 38;\ + = 39;\ + = 40;\ + = 41;\ + = 42;\ + = 43;\ + = 44;\ + = 45;\ + = 46;\ + = 47;\ + = 48;\ + = 49;\ + = 50;\ + = 51;\ + = 52;\ + = 53;\ + = 54;\ + = 55;\ + = 56;\ + = 57;\ + = 58;\ + = 59;\ + = 60;\ + = 61;\ + = 62;\ + = 63;\ + = 64;\ + = 65;\ + = 66;\ + = 67;\ + = 68;\ + = 69;\ + = 70;\ + = 71;\ + = 72;\ + = 73;\ + = 74;\ + = 75;\ + = 76;\ + = 77;\ + = 78;\ + = 79;\ + = 80;\ + = 81;\ + = 82;\ + = 83;\ + = 84;\ + = 85;\ + = 86;\ + = 87;\ + = 88;\ + = 89;\ + = 90;\ + = 91;\ + = 92;\ + = 94;\ + = 95;\ + = 96;\ + = 97;\ + = 98;\ + = 99;\ + = 100;\ + = 101;\ + = 102;\ + = 103;\ + = 104;\ + = 105;\ + = 106;\ + = 107;\ + = 108;\ + = 109;\ + = 110;\ + = 111;\ + = 112;\ + = 113;\ + = 114;\ + = 115;\ + = 116;\ + = 117;\ + = 118;\ + = 119;\ + = 120;\ + = 121;\ + = 122;\ + = 123;\ + = 124;\ + = 125;\ + = 126;\ + = 127;\ + = 128;\ + = 129;\ + = 130;\ + = 131;\ + = 132;\ + = 133;\ + = 134;\ + = 135;\ + = 136;\ + = 137;\ + = 138;\ + = 139;\ + = 140;\ + = 141;\ + = 142;\ + = 143;\ + = 144;\ + = 145;\ + = 146;\ + = 147;\ + = 148;\ + = 149;\ + = 150;\ + = 151;\ + = 152;\ + = 153;\ + = 154;\ + = 155;\ + = 156;\ + = 157;\ + = 158;\ + = 159;\ + = 160;\ + = 161;\ + = 162;\ + = 163;\ + = 164;\ + = 165;\ + = 166;\ + = 167;\ + = 168;\ + = 169;\ + = 170;\ + = 171;\ + = 172;\ + = 173;\ + = 174;\ + = 175;\ + = 176;\ + = 177;\ + = 178;\ + = 179;\ + = 180;\ + = 181;\ + = 182;\ + = 183;\ + = 184;\ + = 185;\ + = 186;\ + = 187;\ + = 188;\ + = 189;\ + = 190;\ + = 191;\ + = 192;\ + = 193;\ + = 194;\ + = 195;\ + = 196;\ + = 197;\ + = 198;\ + = 199;\ + = 200;\ + = 201;\ + = 202;\ + = 203;\ + = 204;\ + = 205;\ + = 206;\ + = 207;\ + = 208;\ + = 209;\ + = 210;\ + = 211;\ + = 212;\ + = 213;\ + = 214;\ + = 215;\ + = 216;\ + = 217;\ + = 218;\ + = 219;\ + = 220;\ + = 221;\ + = 222;\ + = 223;\ + = 224;\ + = 225;\ + = 226;\ + = 227;\ + = 228;\ + = 229;\ + = 230;\ + = 231;\ + = 232;\ + = 233;\ + = 234;\ + = 235;\ + = 236;\ + = 237;\ + = 238;\ + = 239;\ + = 240;\ + = 241;\ + = 242;\ + = 243;\ + = 244;\ + = 245;\ + = 246;\ + = 247;\ + = 248;\ + = 249;\ + = 250;\ + = 251;\ + = 252;\ + = 253;\ + = 254;\ + = 255;\ + indicator 1 = \"Caps Lock\";\ + indicator 2 = \"Num Lock\";\ + indicator 3 = \"Scroll Lock\";\ + indicator 4 = \"Compose\";\ + indicator 5 = \"Kana\";\ + indicator 6 = \"Sleep\";\ + indicator 7 = \"Suspend\";\ + indicator 8 = \"Mute\";\ + indicator 9 = \"Misc\";\ + indicator 10 = \"Mail\";\ + indicator 11 = \"Charging\";\ + indicator 12 = \"Shift Lock\";\ + indicator 13 = \"Group 2\";\ + indicator 14 = \"Mouse Keys\";\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + alias = ;\ + };\ + \ + xkb_types \"(unnamed)\" {\ + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;\ + \ + type \"ONE_LEVEL\" {\ + modifiers= none;\ + level_name[Level1]= \"Any\";\ + };\ + type \"TWO_LEVEL\" {\ + modifiers= Shift;\ + map[Shift]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + };\ + type \"ALPHABETIC\" {\ + modifiers= Shift+Lock;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Caps\";\ + };\ + type \"SHIFT+ALT\" {\ + modifiers= Shift+Alt;\ + map[Shift+Alt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift+Alt\";\ + };\ + type \"PC_SUPER_LEVEL2\" {\ + modifiers= Mod4;\ + map[Mod4]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Super\";\ + };\ + type \"PC_CONTROL_LEVEL2\" {\ + modifiers= Control;\ + map[Control]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Control\";\ + };\ + type \"PC_LCONTROL_LEVEL2\" {\ + modifiers= LControl;\ + map[LControl]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"LControl\";\ + };\ + type \"PC_RCONTROL_LEVEL2\" {\ + modifiers= RControl;\ + map[RControl]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"RControl\";\ + };\ + type \"PC_ALT_LEVEL2\" {\ + modifiers= Alt;\ + map[Alt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Alt\";\ + };\ + type \"PC_LALT_LEVEL2\" {\ + modifiers= LAlt;\ + map[LAlt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"LAlt\";\ + };\ + type \"PC_RALT_LEVEL2\" {\ + modifiers= RAlt;\ + map[RAlt]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"RAlt\";\ + };\ + type \"CTRL+ALT\" {\ + modifiers= Shift+Control+Alt+LevelThree;\ + map[Shift]= Level2;\ + preserve[Shift]= Shift;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + preserve[Shift+LevelThree]= Shift;\ + map[Control+Alt]= Level5;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"Ctrl+Alt\";\ + };\ + type \"LOCAL_EIGHT_LEVEL\" {\ + modifiers= Shift+Lock+Control+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level4;\ + map[Control]= Level5;\ + map[Shift+Lock+Control]= Level5;\ + map[Shift+Control]= Level6;\ + map[Lock+Control]= Level6;\ + map[Control+LevelThree]= Level7;\ + map[Shift+Lock+Control+LevelThree]= Level7;\ + map[Shift+Control+LevelThree]= Level8;\ + map[Lock+Control+LevelThree]= Level8;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Level3\";\ + level_name[Level4]= \"Shift Level3\";\ + level_name[Level5]= \"Ctrl\";\ + level_name[Level6]= \"Shift Ctrl\";\ + level_name[Level7]= \"Level3 Ctrl\";\ + level_name[Level8]= \"Shift Level3 Ctrl\";\ + };\ + type \"THREE_LEVEL\" {\ + modifiers= Shift+LevelThree;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Level3\";\ + };\ + type \"EIGHT_LEVEL\" {\ + modifiers= Shift+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_ALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level4;\ + map[Shift+Lock+LevelThree]= Level3;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + map[Lock+LevelFive]= Level6;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[Lock+LevelThree+LevelFive]= Level8;\ + map[Shift+Lock+LevelThree+LevelFive]= Level7;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_LEVEL_FIVE_LOCK\" {\ + modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + preserve[Shift+LevelFive]= Shift;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[NumLock]= Level5;\ + map[Shift+NumLock]= Level6;\ + preserve[Shift+NumLock]= Shift;\ + map[NumLock+LevelThree]= Level7;\ + map[Shift+NumLock+LevelThree]= Level8;\ + map[Shift+NumLock+LevelFive]= Level2;\ + map[NumLock+LevelThree+LevelFive]= Level3;\ + map[Shift+NumLock+LevelThree+LevelFive]= Level4;\ + map[Shift+Lock]= Level2;\ + map[Lock+LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level4;\ + map[Lock+LevelFive]= Level5;\ + map[Shift+Lock+LevelFive]= Level6;\ + preserve[Shift+Lock+LevelFive]= Shift;\ + map[Lock+LevelThree+LevelFive]= Level7;\ + map[Shift+Lock+LevelThree+LevelFive]= Level8;\ + map[Lock+NumLock]= Level5;\ + map[Shift+Lock+NumLock]= Level6;\ + preserve[Shift+Lock+NumLock]= Shift;\ + map[Lock+NumLock+LevelThree]= Level7;\ + map[Shift+Lock+NumLock+LevelThree]= Level8;\ + map[Shift+Lock+NumLock+LevelFive]= Level2;\ + map[Lock+NumLock+LevelThree+LevelFive]= Level3;\ + map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK\" {\ + modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + preserve[Shift+LevelFive]= Shift;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[NumLock]= Level5;\ + map[Shift+NumLock]= Level6;\ + preserve[Shift+NumLock]= Shift;\ + map[NumLock+LevelThree]= Level7;\ + map[Shift+NumLock+LevelThree]= Level8;\ + map[Shift+NumLock+LevelFive]= Level2;\ + map[NumLock+LevelThree+LevelFive]= Level3;\ + map[Shift+NumLock+LevelThree+LevelFive]= Level4;\ + map[Lock]= Level2;\ + map[Lock+LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level4;\ + map[Lock+LevelFive]= Level5;\ + map[Shift+Lock+LevelFive]= Level6;\ + map[Lock+LevelThree+LevelFive]= Level7;\ + map[Shift+Lock+LevelThree+LevelFive]= Level8;\ + map[Lock+NumLock]= Level5;\ + map[Shift+Lock+NumLock]= Level6;\ + map[Lock+NumLock+LevelThree]= Level7;\ + map[Shift+Lock+NumLock+LevelThree]= Level8;\ + map[Lock+NumLock+LevelFive]= Level2;\ + map[Lock+NumLock+LevelThree+LevelFive]= Level4;\ + map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"EIGHT_LEVEL_SEMIALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree+LevelFive;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level3;\ + preserve[Lock+LevelThree]= Lock;\ + map[Shift+Lock+LevelThree]= Level4;\ + preserve[Shift+Lock+LevelThree]= Lock;\ + map[LevelFive]= Level5;\ + map[Shift+LevelFive]= Level6;\ + map[Lock+LevelFive]= Level6;\ + preserve[Lock+LevelFive]= Lock;\ + map[Shift+Lock+LevelFive]= Level6;\ + preserve[Shift+Lock+LevelFive]= Lock;\ + map[LevelThree+LevelFive]= Level7;\ + map[Shift+LevelThree+LevelFive]= Level8;\ + map[Lock+LevelThree+LevelFive]= Level7;\ + preserve[Lock+LevelThree+LevelFive]= Lock;\ + map[Shift+Lock+LevelThree+LevelFive]= Level8;\ + preserve[Shift+Lock+LevelThree+LevelFive]= Lock;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"X\";\ + level_name[Level6]= \"X Shift\";\ + level_name[Level7]= \"X Alt Base\";\ + level_name[Level8]= \"X Shift Alt\";\ + };\ + type \"FOUR_LEVEL\" {\ + modifiers= Shift+LevelThree;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_ALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level4;\ + map[Shift+Lock+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_SEMIALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level3;\ + preserve[Lock+LevelThree]= Lock;\ + map[Shift+Lock+LevelThree]= Level4;\ + preserve[Shift+Lock+LevelThree]= Lock;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_MIXED_KEYPAD\" {\ + modifiers= Shift+NumLock+LevelThree;\ + map[NumLock]= Level2;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[NumLock+LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Shift+NumLock+LevelThree]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Number\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + };\ + type \"FOUR_LEVEL_X\" {\ + modifiers= Shift+Control+Alt+LevelThree;\ + map[LevelThree]= Level2;\ + map[Shift+LevelThree]= Level3;\ + map[Control+Alt]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Alt Base\";\ + level_name[Level3]= \"Shift Alt\";\ + level_name[Level4]= \"Ctrl+Alt\";\ + };\ + type \"SEPARATE_CAPS_AND_SHIFT_ALPHABETIC\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[Lock]= Level4;\ + preserve[Lock]= Lock;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock+LevelThree]= Level3;\ + preserve[Lock+LevelThree]= Lock;\ + map[Shift+Lock+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"AltGr Base\";\ + level_name[Level4]= \"Shift AltGr\";\ + };\ + type \"FOUR_LEVEL_PLUS_LOCK\" {\ + modifiers= Shift+Lock+LevelThree;\ + map[Shift]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[Lock]= Level5;\ + map[Shift+Lock]= Level2;\ + map[Lock+LevelThree]= Level3;\ + map[Shift+Lock+LevelThree]= Level4;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Shift\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Shift Alt\";\ + level_name[Level5]= \"Lock\";\ + };\ + type \"KEYPAD\" {\ + modifiers= Shift+NumLock;\ + map[Shift]= Level2;\ + map[NumLock]= Level2;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Number\";\ + };\ + type \"FOUR_LEVEL_KEYPAD\" {\ + modifiers= Shift+NumLock+LevelThree;\ + map[Shift]= Level2;\ + map[NumLock]= Level2;\ + map[LevelThree]= Level3;\ + map[Shift+LevelThree]= Level4;\ + map[NumLock+LevelThree]= Level4;\ + map[Shift+NumLock+LevelThree]= Level3;\ + level_name[Level1]= \"Base\";\ + level_name[Level2]= \"Number\";\ + level_name[Level3]= \"Alt Base\";\ + level_name[Level4]= \"Alt Number\";\ + };\ + };\ + \ + xkb_compatibility \"(unnamed)\" {\ + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;\ + \ + interpret.useModMapMods= AnyLevel;\ + interpret.repeat= False;\ + interpret ISO_Level2_Latch+Exactly(Shift) {\ + useModMapMods=level1;\ + action= LatchMods(modifiers=Shift,clearLocks,latchToLock);\ + };\ + interpret Shift_Lock+AnyOf(Shift+Lock) {\ + action= LockMods(modifiers=Shift);\ + };\ + interpret Num_Lock+AnyOf(all) {\ + virtualModifier= NumLock;\ + action= LockMods(modifiers=NumLock);\ + };\ + interpret ISO_Level3_Shift+AnyOf(all) {\ + virtualModifier= LevelThree;\ + useModMapMods=level1;\ + action= SetMods(modifiers=LevelThree,clearLocks);\ + };\ + interpret ISO_Level3_Latch+AnyOf(all) {\ + virtualModifier= LevelThree;\ + useModMapMods=level1;\ + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);\ + };\ + interpret ISO_Level3_Lock+AnyOf(all) {\ + virtualModifier= LevelThree;\ + useModMapMods=level1;\ + action= LockMods(modifiers=LevelThree);\ + };\ + interpret Alt_L+AnyOf(all) {\ + virtualModifier= Alt;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Alt_R+AnyOf(all) {\ + virtualModifier= Alt;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Meta_L+AnyOf(all) {\ + virtualModifier= Meta;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Meta_R+AnyOf(all) {\ + virtualModifier= Meta;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Super_L+AnyOf(all) {\ + virtualModifier= Super;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Super_R+AnyOf(all) {\ + virtualModifier= Super;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Hyper_L+AnyOf(all) {\ + virtualModifier= Hyper;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Hyper_R+AnyOf(all) {\ + virtualModifier= Hyper;\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + interpret Scroll_Lock+AnyOf(all) {\ + virtualModifier= ScrollLock;\ + action= LockMods(modifiers=modMapMods);\ + };\ + interpret ISO_Level5_Shift+AnyOf(all) {\ + virtualModifier= LevelFive;\ + useModMapMods=level1;\ + action= SetMods(modifiers=LevelFive,clearLocks);\ + };\ + interpret ISO_Level5_Latch+AnyOf(all) {\ + virtualModifier= LevelFive;\ + useModMapMods=level1;\ + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);\ + };\ + interpret ISO_Level5_Lock+AnyOf(all) {\ + virtualModifier= LevelFive;\ + useModMapMods=level1;\ + action= LockMods(modifiers=LevelFive);\ + };\ + interpret Mode_switch+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= SetGroup(group=+1);\ + };\ + interpret ISO_Level3_Shift+AnyOfOrNone(all) {\ + action= SetMods(modifiers=LevelThree,clearLocks);\ + };\ + interpret ISO_Level3_Latch+AnyOfOrNone(all) {\ + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);\ + };\ + interpret ISO_Level3_Lock+AnyOfOrNone(all) {\ + action= LockMods(modifiers=LevelThree);\ + };\ + interpret ISO_Group_Latch+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= LatchGroup(group=2);\ + };\ + interpret ISO_Next_Group+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= LockGroup(group=+1);\ + };\ + interpret ISO_Prev_Group+AnyOfOrNone(all) {\ + virtualModifier= AltGr;\ + useModMapMods=level1;\ + action= LockGroup(group=-1);\ + };\ + interpret ISO_First_Group+AnyOfOrNone(all) {\ + action= LockGroup(group=1);\ + };\ + interpret ISO_Last_Group+AnyOfOrNone(all) {\ + action= LockGroup(group=2);\ + };\ + interpret KP_1+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+1);\ + };\ + interpret KP_End+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+1);\ + };\ + interpret KP_2+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=+1);\ + };\ + interpret KP_Down+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=+1);\ + };\ + interpret KP_3+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+1);\ + };\ + interpret KP_Next+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+1);\ + };\ + interpret KP_4+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+0);\ + };\ + interpret KP_Left+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+0);\ + };\ + interpret KP_6+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+0);\ + };\ + interpret KP_Right+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+0);\ + };\ + interpret KP_7+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=-1);\ + };\ + interpret KP_Home+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=-1);\ + };\ + interpret KP_8+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=-1);\ + };\ + interpret KP_Up+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+0,y=-1);\ + };\ + interpret KP_9+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=-1);\ + };\ + interpret KP_Prior+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=-1);\ + };\ + interpret KP_5+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default);\ + };\ + interpret KP_Begin+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default);\ + };\ + interpret KP_F2+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=1);\ + };\ + interpret KP_Divide+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=1);\ + };\ + interpret KP_F3+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=2);\ + };\ + interpret KP_Multiply+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=2);\ + };\ + interpret KP_F4+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=3);\ + };\ + interpret KP_Subtract+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=3);\ + };\ + interpret KP_Separator+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default,count=2);\ + };\ + interpret KP_Add+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default,count=2);\ + };\ + interpret KP_0+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=lock);\ + };\ + interpret KP_Insert+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=lock);\ + };\ + interpret KP_Decimal+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=unlock);\ + };\ + interpret KP_Delete+AnyOfOrNone(all) {\ + repeat= True;\ + action= LockPtrBtn(button=default,affect=unlock);\ + };\ + interpret F25+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=1);\ + };\ + interpret F26+AnyOfOrNone(all) {\ + repeat= True;\ + action= SetPtrDflt(affect=button,button=2);\ + };\ + interpret F27+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=-1);\ + };\ + interpret F29+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=-1);\ + };\ + interpret F31+AnyOfOrNone(all) {\ + repeat= True;\ + action= PtrBtn(button=default);\ + };\ + interpret F33+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=-1,y=+1);\ + };\ + interpret F35+AnyOfOrNone(all) {\ + repeat= True;\ + action= MovePtr(x=+1,y=+1);\ + };\ + interpret Pointer_Button_Dflt+AnyOfOrNone(all) {\ + action= PtrBtn(button=default);\ + };\ + interpret Pointer_Button1+AnyOfOrNone(all) {\ + action= PtrBtn(button=1);\ + };\ + interpret Pointer_Button2+AnyOfOrNone(all) {\ + action= PtrBtn(button=2);\ + };\ + interpret Pointer_Button3+AnyOfOrNone(all) {\ + action= PtrBtn(button=3);\ + };\ + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {\ + action= PtrBtn(button=default,count=2);\ + };\ + interpret Pointer_DblClick1+AnyOfOrNone(all) {\ + action= PtrBtn(button=1,count=2);\ + };\ + interpret Pointer_DblClick2+AnyOfOrNone(all) {\ + action= PtrBtn(button=2,count=2);\ + };\ + interpret Pointer_DblClick3+AnyOfOrNone(all) {\ + action= PtrBtn(button=3,count=2);\ + };\ + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=default);\ + };\ + interpret Pointer_Drag1+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=1);\ + };\ + interpret Pointer_Drag2+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=2);\ + };\ + interpret Pointer_Drag3+AnyOfOrNone(all) {\ + action= LockPtrBtn(button=3);\ + };\ + interpret Pointer_EnableKeys+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeys);\ + };\ + interpret Pointer_Accelerate+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeysAccel);\ + };\ + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {\ + action= SetPtrDflt(affect=button,button=+1);\ + };\ + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {\ + action= SetPtrDflt(affect=button,button=-1);\ + };\ + interpret AccessX_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=AccessXKeys);\ + };\ + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=AccessXFeedback);\ + };\ + interpret RepeatKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=RepeatKeys);\ + };\ + interpret SlowKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=SlowKeys);\ + };\ + interpret BounceKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=BounceKeys);\ + };\ + interpret StickyKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=StickyKeys);\ + };\ + interpret MouseKeys_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeys);\ + };\ + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=MouseKeysAccel);\ + };\ + interpret Overlay1_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=none);\ + };\ + interpret Overlay2_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=none);\ + };\ + interpret AudibleBell_Enable+AnyOfOrNone(all) {\ + action= LockControls(controls=AudibleBell);\ + };\ + interpret Terminate_Server+AnyOfOrNone(all) {\ + action= Terminate();\ + };\ + interpret Alt_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Alt,clearLocks);\ + };\ + interpret Alt_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Alt,clearLocks);\ + };\ + interpret Meta_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Meta,clearLocks);\ + };\ + interpret Meta_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Meta,clearLocks);\ + };\ + interpret Super_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Super,clearLocks);\ + };\ + interpret Super_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Super,clearLocks);\ + };\ + interpret Hyper_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Hyper,clearLocks);\ + };\ + interpret Hyper_R+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Hyper,clearLocks);\ + };\ + interpret Shift_L+AnyOfOrNone(all) {\ + action= SetMods(modifiers=Shift,clearLocks);\ + };\ + interpret XF86Switch_VT_1+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=1,!same);\ + };\ + interpret XF86Switch_VT_2+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=2,!same);\ + };\ + interpret XF86Switch_VT_3+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=3,!same);\ + };\ + interpret XF86Switch_VT_4+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=4,!same);\ + };\ + interpret XF86Switch_VT_5+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=5,!same);\ + };\ + interpret XF86Switch_VT_6+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=6,!same);\ + };\ + interpret XF86Switch_VT_7+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=7,!same);\ + };\ + interpret XF86Switch_VT_8+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=8,!same);\ + };\ + interpret XF86Switch_VT_9+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=9,!same);\ + };\ + interpret XF86Switch_VT_10+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=10,!same);\ + };\ + interpret XF86Switch_VT_11+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=11,!same);\ + };\ + interpret XF86Switch_VT_12+AnyOfOrNone(all) {\ + repeat= True;\ + action= SwitchScreen(screen=12,!same);\ + };\ + interpret XF86LogGrabInfo+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);\ + };\ + interpret XF86LogWindowTree+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);\ + };\ + interpret XF86Next_VMode+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);\ + };\ + interpret XF86Prev_VMode+AnyOfOrNone(all) {\ + repeat= True;\ + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);\ + };\ + interpret ISO_Level5_Shift+AnyOfOrNone(all) {\ + action= SetMods(modifiers=LevelFive,clearLocks);\ + };\ + interpret ISO_Level5_Latch+AnyOfOrNone(all) {\ + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);\ + };\ + interpret ISO_Level5_Lock+AnyOfOrNone(all) {\ + action= LockMods(modifiers=LevelFive);\ + };\ + interpret Caps_Lock+AnyOfOrNone(all) {\ + action= LockMods(modifiers=Lock);\ + };\ + interpret Any+Exactly(Lock) {\ + action= LockMods(modifiers=Lock);\ + };\ + interpret Any+AnyOf(all) {\ + action= SetMods(modifiers=modMapMods,clearLocks);\ + };\ + indicator \"Caps Lock\" {\ + whichModState= locked;\ + modifiers= Lock;\ + };\ + indicator \"Num Lock\" {\ + whichModState= locked;\ + modifiers= NumLock;\ + };\ + indicator \"Scroll Lock\" {\ + whichModState= locked;\ + modifiers= ScrollLock;\ + };\ + indicator \"Shift Lock\" {\ + whichModState= locked;\ + modifiers= Shift;\ + };\ + indicator \"Group 2\" {\ + groups= 0xfe;\ + };\ + indicator \"Mouse Keys\" {\ + controls= MouseKeys;\ + };\ + };\ + \ + xkb_symbols \"(unnamed)\" {\ + name[group1]=\"English (US)\";\ + \ + key { [ Escape ] };\ + key { [ 1, exclam ] };\ + key { [ 2, at ] };\ + key { [ 3, numbersign ] };\ + key { [ 4, dollar ] };\ + key { [ 5, percent ] };\ + key { [ 6, asciicircum ] };\ + key { [ 7, ampersand ] };\ + key { [ 8, asterisk ] };\ + key { [ 9, parenleft ] };\ + key { [ 0, parenright ] };\ + key { [ minus, underscore ] };\ + key { [ equal, plus ] };\ + key { [ BackSpace, BackSpace ] };\ + key { [ Tab, ISO_Left_Tab ] };\ + key { [ q, Q, 1, asciitilde ] };\ + key { [ w, W, 2, plus ] };\ + key { [ e, E, 3, minus ] };\ + key { [ r, R, 4, equal ] };\ + key { [ t, T, 5, percent ] };\ + key { [ y, Y, 6, asciicircum ] };\ + key { [ u, U, 7, ampersand ] };\ + key { [ i, I, 8, asterisk ] };\ + key { [ o, O, 9, bracketleft ] };\ + key { [ p, P, 0, bracketright ] };\ + key { [ bracketleft, braceleft ] };\ + key { [ bracketright, braceright ] };\ + key { [ Return ] };\ + key { [ Control_L ] };\ + key { [ a, A, aogonek, Aogonek ] };\ + key { [ s, S, sacute, Sacute ] };\ + key { [ d, D, eogonek, Eogonek ] };\ + key { [ f, F, colon, underscore ] };\ + key { [ g, G, semicolon, apostrophe ] };\ + key { [ h, H, parenleft, braceleft ] };\ + key { [ j, J, parenright, braceright ] };\ + key { [ k, K, oacute, Oacute ] };\ + key { [ l, L, lstroke, Lstroke ] };\ + key { [ semicolon, colon ] };\ + key { [ apostrophe, quotedbl ] };\ + key { [ grave, asciitilde ] };\ + key { [ Shift_L ] };\ + key { [ backslash, bar ] };\ + key { [ z, Z, zabovedot, Zabovedot ] };\ + key { [ x, X, zacute, Zacute ] };\ + key { [ c, C, cacute, Cacute ] };\ + key { [ v, V, U2013, dollar ] };\ + key { [ b, B, question, EuroSign ] };\ + key { [ n, N, exclam, numbersign ] };\ + key { [ m, M, U201E, guillemotright ] };\ + key { [ comma, less, U201D, guillemotleft] };\ + key { [ period, greater, bar, ellipsis ] };\ + key { [ slash, question ] };\ + key { [ Shift_R ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ]\ + };\ + key { [ Alt_L, Meta_L ] };\ + key { [ space ] };\ + key { [ Caps_Lock ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ]\ + };\ + key { [ Num_Lock ] };\ + key { [ Scroll_Lock ] };\ + key { [ KP_Home, KP_7 ] };\ + key { [ KP_Up, KP_8 ] };\ + key { [ KP_Prior, KP_9 ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ]\ + };\ + key { [ KP_Left, KP_4 ] };\ + key { [ KP_Begin, KP_5 ] };\ + key { [ KP_Right, KP_6 ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ]\ + };\ + key { [ KP_End, KP_1 ] };\ + key { [ KP_Down, KP_2 ] };\ + key { [ KP_Next, KP_3 ] };\ + key { [ KP_Insert, KP_0 ] };\ + key { [ KP_Delete, KP_Decimal ] };\ + key { [ ISO_Level3_Shift ] };\ + key { [ less, greater, bar, brokenbar ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ]\ + };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ]\ + };\ + key { [ Katakana ] };\ + key { [ Hiragana ] };\ + key { [ Henkan_Mode ] };\ + key { [ Hiragana_Katakana ] };\ + key { [ Muhenkan ] };\ + key { [ KP_Enter ] };\ + key { [ Control_R ] };\ + key {\ + type= \"CTRL+ALT\",\ + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ]\ + };\ + key {\ + type= \"PC_ALT_LEVEL2\",\ + symbols[Group1]= [ Print, Sys_Req ]\ + };\ + key {\ + type= \"TWO_LEVEL\",\ + symbols[Group1]= [ Alt_R, Meta_R ]\ + };\ + key { [ Linefeed ] };\ + key { [ Home ] };\ + key { [ Up ] };\ + key { [ Prior ] };\ + key { [ Left ] };\ + key { [ Right ] };\ + key { [ End ] };\ + key { [ Down ] };\ + key { [ Next ] };\ + key { [ Insert ] };\ + key { [ Delete ] };\ + key { [ XF86AudioMute ] };\ + key { [ XF86AudioLowerVolume ] };\ + key { [ XF86AudioRaiseVolume ] };\ + key { [ XF86PowerOff ] };\ + key { [ KP_Equal ] };\ + key { [ plusminus ] };\ + key {\ + type= \"PC_CONTROL_LEVEL2\",\ + symbols[Group1]= [ Pause, Break ]\ + };\ + key { [ XF86LaunchA ] };\ + key { [ KP_Decimal, KP_Decimal ] };\ + key { [ Hangul ] };\ + key { [ Hangul_Hanja ] };\ + key { [ Super_L ] };\ + key { [ Super_R ] };\ + key { [ Menu ] };\ + key { [ Cancel ] };\ + key { [ Redo ] };\ + key { [ SunProps ] };\ + key { [ Undo ] };\ + key { [ SunFront ] };\ + key { [ XF86Copy ] };\ + key { [ XF86Open ] };\ + key { [ XF86Paste ] };\ + key { [ Find ] };\ + key { [ XF86Cut ] };\ + key { [ Help ] };\ + key { [ XF86MenuKB ] };\ + key { [ XF86Calculator ] };\ + key { [ XF86Sleep ] };\ + key { [ XF86WakeUp ] };\ + key { [ XF86Explorer ] };\ + key { [ XF86Send ] };\ + key { [ XF86Xfer ] };\ + key { [ XF86Launch1 ] };\ + key { [ XF86Launch2 ] };\ + key { [ XF86WWW ] };\ + key { [ XF86DOS ] };\ + key { [ XF86ScreenSaver ] };\ + key { [ XF86RotateWindows ] };\ + key { [ XF86TaskPane ] };\ + key { [ XF86Mail ] };\ + key { [ XF86Favorites ] };\ + key { [ XF86MyComputer ] };\ + key { [ XF86Back ] };\ + key { [ XF86Forward ] };\ + key { [ XF86Eject ] };\ + key { [ XF86Eject, XF86Eject ] };\ + key { [ XF86AudioNext ] };\ + key { [ XF86AudioPlay, XF86AudioPause ] };\ + key { [ XF86AudioPrev ] };\ + key { [ XF86AudioStop, XF86Eject ] };\ + key { [ XF86AudioRecord ] };\ + key { [ XF86AudioRewind ] };\ + key { [ XF86Phone ] };\ + key { [ XF86Tools ] };\ + key { [ XF86HomePage ] };\ + key { [ XF86Reload ] };\ + key { [ XF86Close ] };\ + key { [ XF86ScrollUp ] };\ + key { [ XF86ScrollDown ] };\ + key { [ parenleft ] };\ + key { [ parenright ] };\ + key { [ XF86New ] };\ + key { [ Redo ] };\ + key { [ XF86Tools ] };\ + key { [ XF86Launch5 ] };\ + key { [ XF86Launch6 ] };\ + key { [ XF86Launch7 ] };\ + key { [ XF86Launch8 ] };\ + key { [ XF86Launch9 ] };\ + key { [ XF86AudioMicMute ] };\ + key { [ XF86TouchpadToggle ] };\ + key { [ XF86TouchpadOn ] };\ + key { [ XF86TouchpadOff ] };\ + key { [ Mode_switch ] };\ + key { [ NoSymbol, Alt_L ] };\ + key { [ NoSymbol, Meta_L ] };\ + key { [ NoSymbol, Super_L ] };\ + key { [ NoSymbol, Hyper_L ] };\ + key { [ XF86AudioPlay ] };\ + key { [ XF86AudioPause ] };\ + key { [ XF86Launch3 ] };\ + key { [ XF86Launch4 ] };\ + key { [ XF86LaunchB ] };\ + key { [ XF86Suspend ] };\ + key { [ XF86Close ] };\ + key { [ XF86AudioPlay ] };\ + key { [ XF86AudioForward ] };\ + key { [ Print ] };\ + key { [ XF86WebCam ] };\ + key { [ XF86AudioPreset ] };\ + key { [ XF86Mail ] };\ + key { [ XF86Messenger ] };\ + key { [ XF86Search ] };\ + key { [ XF86Go ] };\ + key { [ XF86Finance ] };\ + key { [ XF86Game ] };\ + key { [ XF86Shop ] };\ + key { [ Cancel ] };\ + key { [ XF86MonBrightnessDown ] };\ + key { [ XF86MonBrightnessUp ] };\ + key { [ XF86AudioMedia ] };\ + key { [ XF86Display ] };\ + key { [ XF86KbdLightOnOff ] };\ + key { [ XF86KbdBrightnessDown ] };\ + key { [ XF86KbdBrightnessUp ] };\ + key { [ XF86Send ] };\ + key { [ XF86Reply ] };\ + key { [ XF86MailForward ] };\ + key { [ XF86Save ] };\ + key { [ XF86Documents ] };\ + key { [ XF86Battery ] };\ + key { [ XF86Bluetooth ] };\ + key { [ XF86WLAN ] };\ + key { [ XF86UWB ] };\ + key { [ XF86WWAN ] };\ + key { [ XF86RFKill ] };\ + modifier_map Shift { , };\ + modifier_map Lock { };\ + modifier_map Control { , };\ + modifier_map Mod1 { , , };\ + modifier_map Mod2 { };\ + modifier_map Mod4 { , , , };\ + modifier_map Mod5 { , };\ + };\ +};"; + +size_t keymap_size = strlen(keymap_str) + 1; diff --git a/main.c b/main.c new file mode 100644 index 0000000..45ec8fc --- /dev/null +++ b/main.c @@ -0,0 +1,352 @@ +#include "proto/virtual-keyboard-unstable-v1-client-protocol.h" +#include "proto/wlr-layer-shell-unstable-v1-client-protocol.h" +#include "wld/wayland.h" +#include "wld/wld.h" +#include +#include +#include +#include +#include +#include + +#include "drw.h" +#include "keymap.h" +#include "os-compatibility.h" + +/* lazy die macro */ +#define die(...) \ + fprintf(stderr, __VA_ARGS__); \ + exit(0) + +/* client state */ +static const char *namespace = "wlroots"; +static struct wl_display *display; +static struct wl_compositor *compositor; +static struct wl_seat *seat; +static struct wl_shm *shm; +static struct wl_pointer *pointer; +static struct wl_touch *touch; +static struct wl_output *wl_output; +static struct wl_surface *wl_surface; +static struct zwlr_layer_shell_v1 *layer_shell; +static struct zwlr_layer_surface_v1 *layer_surface; +static struct zwp_virtual_keyboard_manager_v1 *vkbd_mgr; +static uint32_t output = UINT32_MAX; + +/* drawing */ +static struct drw draw_ctx; +static struct drwsurf draw_surf; + +/* layer surface parameters */ +static uint32_t layer = ZWLR_LAYER_SHELL_V1_LAYER_TOP; +static uint32_t anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM | + ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT | + ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT; + +/* application state */ +static bool run_display = true; +static int cur_x = -1, cur_y = -1; + +/* event handler prototypes */ +static void wl_pointer_enter(void *data, struct wl_pointer *wl_pointer, + uint32_t serial, struct wl_surface *surface, + wl_fixed_t surface_x, wl_fixed_t surface_y); +static void wl_pointer_leave(void *data, struct wl_pointer *wl_pointer, + uint32_t serial, struct wl_surface *surface); +static void wl_pointer_motion(void *data, struct wl_pointer *wl_pointer, + uint32_t time, wl_fixed_t surface_x, + wl_fixed_t surface_y); +static void wl_pointer_button(void *data, struct wl_pointer *wl_pointer, + uint32_t serial, uint32_t time, uint32_t button, + uint32_t state); + +static void wl_touch_down(void *data, struct wl_touch *wl_touch, + uint32_t serial, uint32_t time, + struct wl_surface *surface, int32_t id, wl_fixed_t x, + wl_fixed_t y); +static void wl_touch_up(void *data, struct wl_touch *wl_touch, uint32_t serial, + uint32_t time, int32_t id); +static void wl_touch_motion(void *data, struct wl_touch *wl_touch, + uint32_t time, int32_t id, wl_fixed_t x, + wl_fixed_t y); +static void wl_touch_frame(void *data, struct wl_touch *wl_touch); +static void wl_touch_cancel(void *data, struct wl_touch *wl_touch); +static void wl_touch_shape(void *data, struct wl_touch *wl_touch, int32_t id, + wl_fixed_t major, wl_fixed_t minor); +static void wl_touch_orientation(void *data, struct wl_touch *wl_touch, + int32_t id, wl_fixed_t orientation); + +static void seat_handle_capabilities(void *data, struct wl_seat *wl_seat, + enum wl_seat_capability caps); +static void seat_handle_name(void *data, struct wl_seat *wl_seat, + const char *name); + +static void handle_global(void *data, struct wl_registry *registry, + uint32_t name, const char *interface, + uint32_t version); +static void handle_global_remove(void *data, struct wl_registry *registry, + uint32_t name); + +static void layer_surface_configure(void *data, + struct zwlr_layer_surface_v1 *surface, + uint32_t serial, uint32_t w, uint32_t h); +static void layer_surface_closed(void *data, + struct zwlr_layer_surface_v1 *surface); + +/* event handlers */ +static const struct wl_pointer_listener pointer_listener = { + .enter = wl_pointer_enter, + .leave = wl_pointer_leave, + .motion = wl_pointer_motion, + .button = wl_pointer_button, +}; + +static const struct wl_touch_listener touch_listener = { + .down = wl_touch_down, + .up = wl_touch_up, + .motion = wl_touch_motion, + .frame = wl_touch_frame, + .cancel = wl_touch_cancel, + .shape = wl_touch_shape, + .orientation = wl_touch_orientation, +}; + +static const struct wl_seat_listener seat_listener = { + .capabilities = seat_handle_capabilities, + .name = seat_handle_name, +}; + +static const struct wl_registry_listener registry_listener = { + .global = handle_global, + .global_remove = handle_global_remove, +}; + +static const struct zwlr_layer_surface_v1_listener layer_surface_listener = { + .configure = layer_surface_configure, + .closed = layer_surface_closed, +}; + +#include "config.h" + +void +wl_touch_down(void *data, struct wl_touch *wl_touch, uint32_t serial, + uint32_t time, struct wl_surface *surface, int32_t id, + wl_fixed_t x, wl_fixed_t y) { + struct key *next_key; + uint32_t touch_x, touch_y; + + touch_x = wl_fixed_to_int(x); + touch_y = wl_fixed_to_int(y); + + kbd_unpress_key(&keyboard, time); + + next_key = kbd_get_key(&keyboard, touch_x, touch_y); + if (next_key) { + kbd_press_key(&keyboard, next_key, time); + } +} + +void +wl_touch_up(void *data, struct wl_touch *wl_touch, uint32_t serial, + uint32_t time, int32_t id) { + kbd_unpress_key(&keyboard, time); +} + +void +wl_touch_motion(void *data, struct wl_touch *wl_touch, uint32_t time, + int32_t id, wl_fixed_t x, wl_fixed_t y) { + kbd_unpress_key(&keyboard, time); +} + +void +wl_touch_frame(void *data, struct wl_touch *wl_touch) {} + +void +wl_touch_cancel(void *data, struct wl_touch *wl_touch) {} + +void +wl_touch_shape(void *data, struct wl_touch *wl_touch, int32_t id, + wl_fixed_t major, wl_fixed_t minor) {} + +void +wl_touch_orientation(void *data, struct wl_touch *wl_touch, int32_t id, + wl_fixed_t orientation) {} + +void +wl_pointer_enter(void *data, struct wl_pointer *wl_pointer, uint32_t serial, + struct wl_surface *surface, wl_fixed_t surface_x, + wl_fixed_t surface_y) {} + +void +wl_pointer_leave(void *data, struct wl_pointer *wl_pointer, uint32_t serial, + struct wl_surface *surface) { + cur_x = cur_y = -1; +} + +void +wl_pointer_motion(void *data, struct wl_pointer *wl_pointer, uint32_t time, + wl_fixed_t surface_x, wl_fixed_t surface_y) { + cur_x = wl_fixed_to_int(surface_x); + cur_y = wl_fixed_to_int(surface_y); + + kbd_unpress_key(&keyboard, time); +} + +void +wl_pointer_button(void *data, struct wl_pointer *wl_pointer, uint32_t serial, + uint32_t time, uint32_t button, uint32_t state) { + struct key *next_key; + bool press = state == WL_POINTER_BUTTON_STATE_PRESSED; + + kbd_unpress_key(&keyboard, time); + + if (press && cur_x >= 0 && cur_y >= 0) { + next_key = kbd_get_key(&keyboard, cur_x, cur_y); + if (next_key) { + kbd_press_key(&keyboard, next_key, time); + } + } +} + +void +seat_handle_capabilities(void *data, struct wl_seat *wl_seat, + enum wl_seat_capability caps) { + if ((caps & WL_SEAT_CAPABILITY_POINTER)) { + pointer = wl_seat_get_pointer(wl_seat); + wl_pointer_add_listener(pointer, &pointer_listener, NULL); + } + if ((caps & WL_SEAT_CAPABILITY_TOUCH)) { + touch = wl_seat_get_touch(wl_seat); + wl_touch_add_listener(touch, &touch_listener, NULL); + } +} + +void +seat_handle_name(void *data, struct wl_seat *wl_seat, const char *name) {} + +void +handle_global(void *data, struct wl_registry *registry, uint32_t name, + const char *interface, uint32_t version) { + if (strcmp(interface, wl_compositor_interface.name) == 0) { + compositor = wl_registry_bind(registry, name, &wl_compositor_interface, 1); + } else if (strcmp(interface, wl_shm_interface.name) == 0) { + shm = wl_registry_bind(registry, name, &wl_shm_interface, 1); + } else if (strcmp(interface, "wl_output") == 0) { + if (output != UINT32_MAX) { + if (!wl_output) { + wl_output = wl_registry_bind(registry, name, &wl_output_interface, 1); + } else { + output--; + } + } + } else if (strcmp(interface, wl_seat_interface.name) == 0) { + seat = wl_registry_bind(registry, name, &wl_seat_interface, 1); + wl_seat_add_listener(seat, &seat_listener, NULL); + } else if (strcmp(interface, zwlr_layer_shell_v1_interface.name) == 0) { + layer_shell = + wl_registry_bind(registry, name, &zwlr_layer_shell_v1_interface, 1); + } else if (strcmp(interface, + zwp_virtual_keyboard_manager_v1_interface.name) == 0) { + vkbd_mgr = wl_registry_bind(registry, name, + &zwp_virtual_keyboard_manager_v1_interface, 1); + } +} + +void +handle_global_remove(void *data, struct wl_registry *registry, uint32_t name) {} + +void +layer_surface_configure(void *data, struct zwlr_layer_surface_v1 *surface, + uint32_t serial, uint32_t w, uint32_t h) { + kbd_resize(&keyboard, w + KBD_PIXEL_OVERSCAN_WIDTH, h); + zwlr_layer_surface_v1_ack_configure(surface, serial); +} + +void +layer_surface_closed(void *data, struct zwlr_layer_surface_v1 *surface) { + zwlr_layer_surface_v1_destroy(surface); + wl_surface_destroy(draw_surf.surf); + run_display = false; +} + +int +main(int argc, char **argv) { + uint8_t i; + int keymap_fd = os_create_anonymous_file(keymap_size); + + /* connect to compositor */ + display = wl_display_connect(NULL); + if (display == NULL) { + die("Failed to create display\n"); + } + + /* acquire state */ + struct wl_registry *registry = wl_display_get_registry(display); + wl_registry_add_listener(registry, ®istry_listener, NULL); + wl_display_roundtrip(display); + + if (compositor == NULL) { + die("wl_compositor not available\n"); + } + if (shm == NULL) { + die("wl_shm not available\n"); + } + if (layer_shell == NULL) { + die("layer_shell not available\n"); + } + if (vkbd_mgr == NULL) { + die("virtual_keyboard_manager not available\n"); + } + + /* create vkbd */ + keyboard.vkbd = + zwp_virtual_keyboard_manager_v1_create_virtual_keyboard(vkbd_mgr, seat); + + /* upload keymap */ + if (keymap_fd < 0) { + die("could not create keymap fd\n"); + } + void *ptr = + mmap(NULL, keymap_size, PROT_READ | PROT_WRITE, MAP_SHARED, keymap_fd, 0); + if (ptr == (void *)-1) { + die("could not map keymap data\n"); + } + strcpy(ptr, keymap_str); + zwp_virtual_keyboard_v1_keymap( + keyboard.vkbd, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, keymap_fd, keymap_size); + + /* init layouts */ + for (i = 0; i < NumLayouts; i++) { + if (layouts[i].keys) { + kbd_init_layout(&layouts[i]); + } + } + + /* assign kbd state */ + keyboard.surf = &draw_surf; + + /* create surface */ + wl_surface = wl_compositor_create_surface(compositor); + drw_init(&draw_ctx, fc_font_pattern, display, shm); + drwsurf_init(&draw_ctx, &draw_surf, wl_surface); + + layer_surface = zwlr_layer_shell_v1_get_layer_surface( + layer_shell, draw_surf.surf, wl_output, layer, namespace); + + zwlr_layer_surface_v1_set_size(layer_surface, 0, KBD_PIXEL_HEIGHT); + zwlr_layer_surface_v1_set_anchor(layer_surface, anchor); + zwlr_layer_surface_v1_set_exclusive_zone(layer_surface, KBD_PIXEL_HEIGHT); + zwlr_layer_surface_v1_set_keyboard_interactivity(layer_surface, false); + zwlr_layer_surface_v1_add_listener(layer_surface, &layer_surface_listener, + NULL); + wl_surface_commit(draw_surf.surf); + + /* flush requests and start drawing */ + wl_display_roundtrip(display); + drwsurf_flip(&draw_surf); + + while (wl_display_dispatch(display) != -1 && run_display) { + } + + return 0; +} diff --git a/os-compatibility.c b/os-compatibility.c new file mode 100644 index 0000000..93f744b --- /dev/null +++ b/os-compatibility.c @@ -0,0 +1,201 @@ +/* + * Copyright © 2012 Collabora, Ltd. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "os-compatibility.h" + +int +os_fd_set_cloexec(int fd) { + long flags; + + if (fd == -1) + return -1; + + flags = fcntl(fd, F_GETFD); + if (flags == -1) + return -1; + + if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1) + return -1; + + return 0; +} + +static int +set_cloexec_or_close(int fd) { + if (os_fd_set_cloexec(fd) != 0) { + close(fd); + return -1; + } + return fd; +} + +int +os_socketpair_cloexec(int domain, int type, int protocol, int *sv) { + int ret; + +#ifdef SOCK_CLOEXEC + ret = socketpair(domain, type | SOCK_CLOEXEC, protocol, sv); + if (ret == 0 || errno != EINVAL) + return ret; +#endif + + ret = socketpair(domain, type, protocol, sv); + if (ret < 0) + return ret; + + sv[0] = set_cloexec_or_close(sv[0]); + sv[1] = set_cloexec_or_close(sv[1]); + + if (sv[0] != -1 && sv[1] != -1) + return 0; + + close(sv[0]); + close(sv[1]); + return -1; +} + +int +os_epoll_create_cloexec(void) { + int fd; + +#ifdef EPOLL_CLOEXEC + fd = epoll_create1(EPOLL_CLOEXEC); + if (fd >= 0) + return fd; + if (errno != EINVAL) + return -1; +#endif + + fd = epoll_create(1); + return set_cloexec_or_close(fd); +} + +static int +create_tmpfile_cloexec(char *tmpname) { + int fd; + +#ifdef HAVE_MKOSTEMP + fd = mkostemp(tmpname, O_CLOEXEC); + if (fd >= 0) + unlink(tmpname); +#else + fd = mkstemp(tmpname); + if (fd >= 0) { + fd = set_cloexec_or_close(fd); + unlink(tmpname); + } +#endif + + return fd; +} + +/* + * Create a new, unique, anonymous file of the given size, and + * return the file descriptor for it. The file descriptor is set + * CLOEXEC. The file is immediately suitable for mmap()'ing + * the given size at offset zero. + * + * The file should not have a permanent backing store like a disk, + * but may have if XDG_RUNTIME_DIR is not properly implemented in OS. + * + * The file name is deleted from the file system. + * + * The file is suitable for buffer sharing between processes by + * transmitting the file descriptor over Unix sockets using the + * SCM_RIGHTS methods. + * + * If the C library implements posix_fallocate(), it is used to + * guarantee that disk space is available for the file at the + * given size. If disk space is insufficient, errno is set to ENOSPC. + * If posix_fallocate() is not supported, program may receive + * SIGBUS on accessing mmap()'ed file contents instead. + */ +int +os_create_anonymous_file(off_t size) { + static const char template[] = "/weston-shared-XXXXXX"; + const char *path; + char *name; + int fd; + int ret; + + path = getenv("XDG_RUNTIME_DIR"); + if (!path) { + errno = ENOENT; + return -1; + } + + name = malloc(strlen(path) + sizeof(template)); + if (!name) + return -1; + + strcpy(name, path); + strcat(name, template); + + fd = create_tmpfile_cloexec(name); + + free(name); + + if (fd < 0) + return -1; + +#ifdef HAVE_POSIX_FALLOCATE + do { + ret = posix_fallocate(fd, 0, size); + } while (ret == EINTR); + if (ret != 0) { + close(fd); + errno = ret; + return -1; + } +#else + do { + ret = ftruncate(fd, size); + } while (ret < 0 && errno == EINTR); + if (ret < 0) { + close(fd); + return -1; + } +#endif + + return fd; +} + +#ifndef MISSING_STRCHRNUL +char * +strchrnul(const char *s, int c) { + while (*s && *s != c) + s++; + return (char *)s; +} +#endif diff --git a/os-compatibility.h b/os-compatibility.h new file mode 100644 index 0000000..80e7627 --- /dev/null +++ b/os-compatibility.h @@ -0,0 +1,52 @@ +/* + * Copyright © 2012 Collabora, Ltd. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef OS_COMPATIBILITY_H +#define OS_COMPATIBILITY_H + +#include + +#ifdef HAVE_EXECINFO_H +#include +#else +static inline int +backtrace(void **buffer, int size) { + return 0; +} +#endif + +int os_fd_set_cloexec(int fd); + +int os_socketpair_cloexec(int domain, int type, int protocol, int *sv); + +int os_epoll_create_cloexec(void); + +int os_create_anonymous_file(off_t size); + +#ifdef MISSING_STRCHRNUL +char *strchrnul(const char *s, int c); +#endif + +#endif /* OS_COMPATIBILITY_H */ diff --git a/proto/virtual-keyboard-unstable-v1.xml b/proto/virtual-keyboard-unstable-v1.xml new file mode 100644 index 0000000..5095c91 --- /dev/null +++ b/proto/virtual-keyboard-unstable-v1.xml @@ -0,0 +1,113 @@ + + + + Copyright © 2008-2011 Kristian Høgsberg + Copyright © 2010-2013 Intel Corporation + Copyright © 2012-2013 Collabora, Ltd. + Copyright © 2018 Purism SPC + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + The virtual keyboard provides an application with requests which emulate + the behaviour of a physical keyboard. + + This interface can be used by clients on its own to provide raw input + events, or it can accompany the input method protocol. + + + + + Provide a file descriptor to the compositor which can be + memory-mapped to provide a keyboard mapping description. + + Format carries a value from the keymap_format enumeration. + + + + + + + + + + + + + A key was pressed or released. + The time argument is a timestamp with millisecond granularity, with an + undefined base. All requests regarding a single object must share the + same clock. + + Keymap must be set before issuing this request. + + State carries a value from the key_state enumeration. + + + + + + + + + Notifies the compositor that the modifier and/or group state has + changed, and it should update state. + + The client should use wl_keyboard.modifiers event to synchronize its + internal state with seat state. + + Keymap must be set before issuing this request. + + + + + + + + + + + + + + + A virtual keyboard manager allows an application to provide keyboard + input events as if they came from a physical keyboard. + + + + + + + + + Creates a new virtual keyboard associated to a seat. + + If the compositor enables a keyboard to perform arbitrary actions, it + should present an error when an untrusted client requests a new + keyboard. + + + + + + diff --git a/proto/wlr-layer-shell-unstable-v1.xml b/proto/wlr-layer-shell-unstable-v1.xml new file mode 100644 index 0000000..27f974f --- /dev/null +++ b/proto/wlr-layer-shell-unstable-v1.xml @@ -0,0 +1,325 @@ + + + + Copyright © 2017 Drew DeVault + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + the copyright holders not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The copyright holders make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + Clients can use this interface to assign the surface_layer role to + wl_surfaces. Such surfaces are assigned to a "layer" of the output and + rendered with a defined z-depth respective to each other. They may also be + anchored to the edges and corners of a screen and specify input handling + semantics. This interface should be suitable for the implementation of + many desktop shell components, and a broad number of other applications + that interact with the desktop. + + + + + Create a layer surface for an existing surface. This assigns the role of + layer_surface, or raises a protocol error if another role is already + assigned. + + Creating a layer surface from a wl_surface which has a buffer attached + or committed is a client error, and any attempts by a client to attach + or manipulate a buffer prior to the first layer_surface.configure call + must also be treated as errors. + + After creating a layer_surface object and setting it up, the client + must perform an initial commit without any buffer attached. + The compositor will reply with a layer_surface.configure event. + The client must acknowledge it and is then allowed to attach a buffer + to map the surface. + + You may pass NULL for output to allow the compositor to decide which + output to use. Generally this will be the one that the user most + recently interacted with. + + Clients can specify a namespace that defines the purpose of the layer + surface. + + + + + + + + + + + + + + + + + These values indicate which layers a surface can be rendered in. They + are ordered by z depth, bottom-most first. Traditional shell surfaces + will typically be rendered between the bottom and top layers. + Fullscreen shell surfaces are typically rendered at the top layer. + Multiple surfaces can share a single layer, and ordering within a + single layer is undefined. + + + + + + + + + + + + + This request indicates that the client will not use the layer_shell + object any more. Objects that have been created through this instance + are not affected. + + + + + + + An interface that may be implemented by a wl_surface, for surfaces that + are designed to be rendered as a layer of a stacked desktop-like + environment. + + Layer surface state (layer, size, anchor, exclusive zone, + margin, interactivity) is double-buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + Attaching a null buffer to a layer surface unmaps it. + + Unmapping a layer_surface means that the surface cannot be shown by the + compositor until it is explicitly mapped again. The layer_surface + returns to the state it had right after layer_shell.get_layer_surface. + The client can re-map the surface by performing a commit without any + buffer attached, waiting for a configure event and handling it as usual. + + + + + Sets the size of the surface in surface-local coordinates. The + compositor will display the surface centered with respect to its + anchors. + + If you pass 0 for either value, the compositor will assign it and + inform you of the assignment in the configure event. You must set your + anchor to opposite edges in the dimensions you omit; not doing so is a + protocol error. Both values are 0 by default. + + Size is double-buffered, see wl_surface.commit. + + + + + + + + Requests that the compositor anchor the surface to the specified edges + and corners. If two orthogonal edges are specified (e.g. 'top' and + 'left'), then the anchor point will be the intersection of the edges + (e.g. the top left corner of the output); otherwise the anchor point + will be centered on that edge, or in the center if none is specified. + + Anchor is double-buffered, see wl_surface.commit. + + + + + + + Requests that the compositor avoids occluding an area with other + surfaces. The compositor's use of this information is + implementation-dependent - do not assume that this region will not + actually be occluded. + + A positive value is only meaningful if the surface is anchored to one + edge or an edge and both perpendicular edges. If the surface is not + anchored, anchored to only two perpendicular edges (a corner), anchored + to only two parallel edges or anchored to all edges, a positive value + will be treated the same as zero. + + A positive zone is the distance from the edge in surface-local + coordinates to consider exclusive. + + Surfaces that do not wish to have an exclusive zone may instead specify + how they should interact with surfaces that do. If set to zero, the + surface indicates that it would like to be moved to avoid occluding + surfaces with a positive exclusive zone. If set to -1, the surface + indicates that it would not like to be moved to accommodate for other + surfaces, and the compositor should extend it all the way to the edges + it is anchored to. + + For example, a panel might set its exclusive zone to 10, so that + maximized shell surfaces are not shown on top of it. A notification + might set its exclusive zone to 0, so that it is moved to avoid + occluding the panel, but shell surfaces are shown underneath it. A + wallpaper or lock screen might set their exclusive zone to -1, so that + they stretch below or over the panel. + + The default value is 0. + + Exclusive zone is double-buffered, see wl_surface.commit. + + + + + + + Requests that the surface be placed some distance away from the anchor + point on the output, in surface-local coordinates. Setting this value + for edges you are not anchored to has no effect. + + The exclusive zone includes the margin. + + Margin is double-buffered, see wl_surface.commit. + + + + + + + + + + Set to 1 to request that the seat send keyboard events to this layer + surface. For layers below the shell surface layer, the seat will use + normal focus semantics. For layers above the shell surface layers, the + seat will always give exclusive keyboard focus to the top-most layer + which has keyboard interactivity set to true. + + Layer surfaces receive pointer, touch, and tablet events normally. If + you do not want to receive them, set the input region on your surface + to an empty region. + + Events is double-buffered, see wl_surface.commit. + + + + + + + This assigns an xdg_popup's parent to this layer_surface. This popup + should have been created via xdg_surface::get_popup with the parent set + to NULL, and this request must be invoked before committing the popup's + initial state. + + See the documentation of xdg_popup for more details about what an + xdg_popup is and how it is used. + + + + + + + When a configure event is received, if a client commits the + surface in response to the configure event, then the client + must make an ack_configure request sometime before the commit + request, passing along the serial of the configure event. + + If the client receives multiple configure events before it + can respond to one, it only has to ack the last configure event. + + A client is not required to commit immediately after sending + an ack_configure request - it may even ack_configure several times + before its next surface commit. + + A client may send multiple ack_configure requests before committing, but + only the last request sent before a commit indicates which configure + event the client really is responding to. + + + + + + + This request destroys the layer surface. + + + + + + The configure event asks the client to resize its surface. + + Clients should arrange their surface for the new states, and then send + an ack_configure request with the serial sent in this configure event at + some point before committing the new surface. + + The client is free to dismiss all but the last configure event it + received. + + The width and height arguments specify the size of the window in + surface-local coordinates. + + The size is a hint, in the sense that the client is free to ignore it if + it doesn't resize, pick a smaller size (to satisfy aspect ratio or + resize in steps of NxM pixels). If the client picks a smaller size and + is anchored to two opposite anchors (e.g. 'top' and 'bottom'), the + surface will be centered on this axis. + + If the width or height arguments are zero, it means the client should + decide its own window dimension. + + + + + + + + + The closed event is sent by the compositor when the surface will no + longer be shown. The output may have been destroyed or the user may + have asked for it to be removed. Further changes to the surface will be + ignored. The client should destroy the resource after receiving this + event, and create a new surface if they so choose. + + + + + + + + + + + + + + + + + + + + + Change the layer that the surface is rendered on. + + Layer is double-buffered, see wl_surface.commit. + + + + + diff --git a/proto/xdg-shell.xml b/proto/xdg-shell.xml new file mode 100644 index 0000000..e259a1f --- /dev/null +++ b/proto/xdg-shell.xml @@ -0,0 +1,1144 @@ + + + + + Copyright © 2008-2013 Kristian Høgsberg + Copyright © 2013 Rafael Antognolli + Copyright © 2013 Jasper St. Pierre + Copyright © 2010-2013 Intel Corporation + Copyright © 2015-2017 Samsung Electronics Co., Ltd + Copyright © 2015-2017 Red Hat Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + The xdg_wm_base interface is exposed as a global object enabling clients + to turn their wl_surfaces into windows in a desktop environment. It + defines the basic functionality needed for clients and the compositor to + create windows that can be dragged, resized, maximized, etc, as well as + creating transient windows such as popup menus. + + + + + + + + + + + + + + Destroy this xdg_wm_base object. + + Destroying a bound xdg_wm_base object while there are surfaces + still alive created by this xdg_wm_base object instance is illegal + and will result in a protocol error. + + + + + + Create a positioner object. A positioner object is used to position + surfaces relative to some parent surface. See the interface description + and xdg_surface.get_popup for details. + + + + + + + This creates an xdg_surface for the given surface. While xdg_surface + itself is not a role, the corresponding surface may only be assigned + a role extending xdg_surface, such as xdg_toplevel or xdg_popup. + + This creates an xdg_surface for the given surface. An xdg_surface is + used as basis to define a role to a given surface, such as xdg_toplevel + or xdg_popup. It also manages functionality shared between xdg_surface + based surface roles. + + See the documentation of xdg_surface for more details about what an + xdg_surface is and how it is used. + + + + + + + + A client must respond to a ping event with a pong request or + the client may be deemed unresponsive. See xdg_wm_base.ping. + + + + + + + The ping event asks the client if it's still alive. Pass the + serial specified in the event back to the compositor by sending + a "pong" request back with the specified serial. See xdg_wm_base.ping. + + Compositors can use this to determine if the client is still + alive. It's unspecified what will happen if the client doesn't + respond to the ping request, or in what timeframe. Clients should + try to respond in a reasonable amount of time. + + A compositor is free to ping in any way it wants, but a client must + always respond to any xdg_wm_base object it created. + + + + + + + + The xdg_positioner provides a collection of rules for the placement of a + child surface relative to a parent surface. Rules can be defined to ensure + the child surface remains within the visible area's borders, and to + specify how the child surface changes its position, such as sliding along + an axis, or flipping around a rectangle. These positioner-created rules are + constrained by the requirement that a child surface must intersect with or + be at least partially adjacent to its parent surface. + + See the various requests for details about possible rules. + + At the time of the request, the compositor makes a copy of the rules + specified by the xdg_positioner. Thus, after the request is complete the + xdg_positioner object can be destroyed or reused; further changes to the + object will have no effect on previous usages. + + For an xdg_positioner object to be considered complete, it must have a + non-zero size set by set_size, and a non-zero anchor rectangle set by + set_anchor_rect. Passing an incomplete xdg_positioner object when + positioning a surface raises an error. + + + + + + + + + Notify the compositor that the xdg_positioner will no longer be used. + + + + + + Set the size of the surface that is to be positioned with the positioner + object. The size is in surface-local coordinates and corresponds to the + window geometry. See xdg_surface.set_window_geometry. + + If a zero or negative size is set the invalid_input error is raised. + + + + + + + + Specify the anchor rectangle within the parent surface that the child + surface will be placed relative to. The rectangle is relative to the + window geometry as defined by xdg_surface.set_window_geometry of the + parent surface. + + When the xdg_positioner object is used to position a child surface, the + anchor rectangle may not extend outside the window geometry of the + positioned child's parent surface. + + If a negative size is set the invalid_input error is raised. + + + + + + + + + + + + + + + + + + + + + + Defines the anchor point for the anchor rectangle. The specified anchor + is used derive an anchor point that the child surface will be + positioned relative to. If a corner anchor is set (e.g. 'top_left' or + 'bottom_right'), the anchor point will be at the specified corner; + otherwise, the derived anchor point will be centered on the specified + edge, or in the center of the anchor rectangle if no edge is specified. + + + + + + + + + + + + + + + + + + + Defines in what direction a surface should be positioned, relative to + the anchor point of the parent surface. If a corner gravity is + specified (e.g. 'bottom_right' or 'top_left'), then the child surface + will be placed towards the specified gravity; otherwise, the child + surface will be centered over the anchor point on any axis that had no + gravity specified. + + + + + + + The constraint adjustment value define ways the compositor will adjust + the position of the surface, if the unadjusted position would result + in the surface being partly constrained. + + Whether a surface is considered 'constrained' is left to the compositor + to determine. For example, the surface may be partly outside the + compositor's defined 'work area', thus necessitating the child surface's + position be adjusted until it is entirely inside the work area. + + The adjustments can be combined, according to a defined precedence: 1) + Flip, 2) Slide, 3) Resize. + + + + Don't alter the surface position even if it is constrained on some + axis, for example partially outside the edge of an output. + + + + + Slide the surface along the x axis until it is no longer constrained. + + First try to slide towards the direction of the gravity on the x axis + until either the edge in the opposite direction of the gravity is + unconstrained or the edge in the direction of the gravity is + constrained. + + Then try to slide towards the opposite direction of the gravity on the + x axis until either the edge in the direction of the gravity is + unconstrained or the edge in the opposite direction of the gravity is + constrained. + + + + + Slide the surface along the y axis until it is no longer constrained. + + First try to slide towards the direction of the gravity on the y axis + until either the edge in the opposite direction of the gravity is + unconstrained or the edge in the direction of the gravity is + constrained. + + Then try to slide towards the opposite direction of the gravity on the + y axis until either the edge in the direction of the gravity is + unconstrained or the edge in the opposite direction of the gravity is + constrained. + + + + + Invert the anchor and gravity on the x axis if the surface is + constrained on the x axis. For example, if the left edge of the + surface is constrained, the gravity is 'left' and the anchor is + 'left', change the gravity to 'right' and the anchor to 'right'. + + If the adjusted position also ends up being constrained, the resulting + position of the flip_x adjustment will be the one before the + adjustment. + + + + + Invert the anchor and gravity on the y axis if the surface is + constrained on the y axis. For example, if the bottom edge of the + surface is constrained, the gravity is 'bottom' and the anchor is + 'bottom', change the gravity to 'top' and the anchor to 'top'. + + The adjusted position is calculated given the original anchor + rectangle and offset, but with the new flipped anchor and gravity + values. + + If the adjusted position also ends up being constrained, the resulting + position of the flip_y adjustment will be the one before the + adjustment. + + + + + Resize the surface horizontally so that it is completely + unconstrained. + + + + + Resize the surface vertically so that it is completely unconstrained. + + + + + + + Specify how the window should be positioned if the originally intended + position caused the surface to be constrained, meaning at least + partially outside positioning boundaries set by the compositor. The + adjustment is set by constructing a bitmask describing the adjustment to + be made when the surface is constrained on that axis. + + If no bit for one axis is set, the compositor will assume that the child + surface should not change its position on that axis when constrained. + + If more than one bit for one axis is set, the order of how adjustments + are applied is specified in the corresponding adjustment descriptions. + + The default adjustment is none. + + + + + + + Specify the surface position offset relative to the position of the + anchor on the anchor rectangle and the anchor on the surface. For + example if the anchor of the anchor rectangle is at (x, y), the surface + has the gravity bottom|right, and the offset is (ox, oy), the calculated + surface position will be (x + ox, y + oy). The offset position of the + surface is the one used for constraint testing. See + set_constraint_adjustment. + + An example use case is placing a popup menu on top of a user interface + element, while aligning the user interface element of the parent surface + with some user interface element placed somewhere in the popup surface. + + + + + + + + + An interface that may be implemented by a wl_surface, for + implementations that provide a desktop-style user interface. + + It provides a base set of functionality required to construct user + interface elements requiring management by the compositor, such as + toplevel windows, menus, etc. The types of functionality are split into + xdg_surface roles. + + Creating an xdg_surface does not set the role for a wl_surface. In order + to map an xdg_surface, the client must create a role-specific object + using, e.g., get_toplevel, get_popup. The wl_surface for any given + xdg_surface can have at most one role, and may not be assigned any role + not based on xdg_surface. + + A role must be assigned before any other requests are made to the + xdg_surface object. + + The client must call wl_surface.commit on the corresponding wl_surface + for the xdg_surface state to take effect. + + Creating an xdg_surface from a wl_surface which has a buffer attached or + committed is a client error, and any attempts by a client to attach or + manipulate a buffer prior to the first xdg_surface.configure call must + also be treated as errors. + + Mapping an xdg_surface-based role surface is defined as making it + possible for the surface to be shown by the compositor. Note that + a mapped surface is not guaranteed to be visible once it is mapped. + + For an xdg_surface to be mapped by the compositor, the following + conditions must be met: + (1) the client has assigned an xdg_surface-based role to the surface + (2) the client has set and committed the xdg_surface state and the + role-dependent state to the surface + (3) the client has committed a buffer to the surface + + A newly-unmapped surface is considered to have met condition (1) out + of the 3 required conditions for mapping a surface if its role surface + has not been destroyed. + + + + + + + + + + + Destroy the xdg_surface object. An xdg_surface must only be destroyed + after its role object has been destroyed. + + + + + + This creates an xdg_toplevel object for the given xdg_surface and gives + the associated wl_surface the xdg_toplevel role. + + See the documentation of xdg_toplevel for more details about what an + xdg_toplevel is and how it is used. + + + + + + + This creates an xdg_popup object for the given xdg_surface and gives + the associated wl_surface the xdg_popup role. + + If null is passed as a parent, a parent surface must be specified using + some other protocol, before committing the initial state. + + See the documentation of xdg_popup for more details about what an + xdg_popup is and how it is used. + + + + + + + + + The window geometry of a surface is its "visible bounds" from the + user's perspective. Client-side decorations often have invisible + portions like drop-shadows which should be ignored for the + purposes of aligning, placing and constraining windows. + + The window geometry is double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + When maintaining a position, the compositor should treat the (x, y) + coordinate of the window geometry as the top left corner of the window. + A client changing the (x, y) window geometry coordinate should in + general not alter the position of the window. + + Once the window geometry of the surface is set, it is not possible to + unset it, and it will remain the same until set_window_geometry is + called again, even if a new subsurface or buffer is attached. + + If never set, the value is the full bounds of the surface, + including any subsurfaces. This updates dynamically on every + commit. This unset is meant for extremely simple clients. + + The arguments are given in the surface-local coordinate space of + the wl_surface associated with this xdg_surface. + + The width and height must be greater than zero. Setting an invalid size + will raise an error. When applied, the effective window geometry will be + the set window geometry clamped to the bounding rectangle of the + combined geometry of the surface of the xdg_surface and the associated + subsurfaces. + + + + + + + + + + When a configure event is received, if a client commits the + surface in response to the configure event, then the client + must make an ack_configure request sometime before the commit + request, passing along the serial of the configure event. + + For instance, for toplevel surfaces the compositor might use this + information to move a surface to the top left only when the client has + drawn itself for the maximized or fullscreen state. + + If the client receives multiple configure events before it + can respond to one, it only has to ack the last configure event. + + A client is not required to commit immediately after sending + an ack_configure request - it may even ack_configure several times + before its next surface commit. + + A client may send multiple ack_configure requests before committing, but + only the last request sent before a commit indicates which configure + event the client really is responding to. + + + + + + + The configure event marks the end of a configure sequence. A configure + sequence is a set of one or more events configuring the state of the + xdg_surface, including the final xdg_surface.configure event. + + Where applicable, xdg_surface surface roles will during a configure + sequence extend this event as a latched state sent as events before the + xdg_surface.configure event. Such events should be considered to make up + a set of atomically applied configuration states, where the + xdg_surface.configure commits the accumulated state. + + Clients should arrange their surface for the new states, and then send + an ack_configure request with the serial sent in this configure event at + some point before committing the new surface. + + If the client receives multiple configure events before it can respond + to one, it is free to discard all but the last event it received. + + + + + + + + This interface defines an xdg_surface role which allows a surface to, + among other things, set window-like properties such as maximize, + fullscreen, and minimize, set application-specific metadata like title and + id, and well as trigger user interactive operations such as interactive + resize and move. + + Unmapping an xdg_toplevel means that the surface cannot be shown + by the compositor until it is explicitly mapped again. + All active operations (e.g., move, resize) are canceled and all + attributes (e.g. title, state, stacking, ...) are discarded for + an xdg_toplevel surface when it is unmapped. + + Attaching a null buffer to a toplevel unmaps the surface. + + + + + This request destroys the role surface and unmaps the surface; + see "Unmapping" behavior in interface section for details. + + + + + + Set the "parent" of this surface. This surface should be stacked + above the parent surface and all other ancestor surfaces. + + Parent windows should be set on dialogs, toolboxes, or other + "auxiliary" surfaces, so that the parent is raised when the dialog + is raised. + + Setting a null parent for a child window removes any parent-child + relationship for the child. Setting a null parent for a window which + currently has no parent is a no-op. + + If the parent is unmapped then its children are managed as + though the parent of the now-unmapped parent has become the + parent of this surface. If no parent exists for the now-unmapped + parent then the children are managed as though they have no + parent surface. + + + + + + + Set a short title for the surface. + + This string may be used to identify the surface in a task bar, + window list, or other user interface elements provided by the + compositor. + + The string must be encoded in UTF-8. + + + + + + + Set an application identifier for the surface. + + The app ID identifies the general class of applications to which + the surface belongs. The compositor can use this to group multiple + surfaces together, or to determine how to launch a new application. + + For D-Bus activatable applications, the app ID is used as the D-Bus + service name. + + The compositor shell will try to group application surfaces together + by their app ID. As a best practice, it is suggested to select app + ID's that match the basename of the application's .desktop file. + For example, "org.freedesktop.FooViewer" where the .desktop file is + "org.freedesktop.FooViewer.desktop". + + See the desktop-entry specification [0] for more details on + application identifiers and how they relate to well-known D-Bus + names and .desktop files. + + [0] http://standards.freedesktop.org/desktop-entry-spec/ + + + + + + + Clients implementing client-side decorations might want to show + a context menu when right-clicking on the decorations, giving the + user a menu that they can use to maximize or minimize the window. + + This request asks the compositor to pop up such a window menu at + the given position, relative to the local surface coordinates of + the parent surface. There are no guarantees as to what menu items + the window menu contains. + + This request must be used in response to some sort of user action + like a button press, key press, or touch down event. + + + + + + + + + + Start an interactive, user-driven move of the surface. + + This request must be used in response to some sort of user action + like a button press, key press, or touch down event. The passed + serial is used to determine the type of interactive move (touch, + pointer, etc). + + The server may ignore move requests depending on the state of + the surface (e.g. fullscreen or maximized), or if the passed serial + is no longer valid. + + If triggered, the surface will lose the focus of the device + (wl_pointer, wl_touch, etc) used for the move. It is up to the + compositor to visually indicate that the move is taking place, such as + updating a pointer cursor, during the move. There is no guarantee + that the device focus will return when the move is completed. + + + + + + + + These values are used to indicate which edge of a surface + is being dragged in a resize operation. + + + + + + + + + + + + + + + Start a user-driven, interactive resize of the surface. + + This request must be used in response to some sort of user action + like a button press, key press, or touch down event. The passed + serial is used to determine the type of interactive resize (touch, + pointer, etc). + + The server may ignore resize requests depending on the state of + the surface (e.g. fullscreen or maximized). + + If triggered, the client will receive configure events with the + "resize" state enum value and the expected sizes. See the "resize" + enum value for more details about what is required. The client + must also acknowledge configure events using "ack_configure". After + the resize is completed, the client will receive another "configure" + event without the resize state. + + If triggered, the surface also will lose the focus of the device + (wl_pointer, wl_touch, etc) used for the resize. It is up to the + compositor to visually indicate that the resize is taking place, + such as updating a pointer cursor, during the resize. There is no + guarantee that the device focus will return when the resize is + completed. + + The edges parameter specifies how the surface should be resized, + and is one of the values of the resize_edge enum. The compositor + may use this information to update the surface position for + example when dragging the top left corner. The compositor may also + use this information to adapt its behavior, e.g. choose an + appropriate cursor image. + + + + + + + + + The different state values used on the surface. This is designed for + state values like maximized, fullscreen. It is paired with the + configure event to ensure that both the client and the compositor + setting the state can be synchronized. + + States set in this way are double-buffered. They will get applied on + the next commit. + + + + The surface is maximized. The window geometry specified in the configure + event must be obeyed by the client. + + The client should draw without shadow or other + decoration outside of the window geometry. + + + + + The surface is fullscreen. The window geometry specified in the + configure event is a maximum; the client cannot resize beyond it. For + a surface to cover the whole fullscreened area, the geometry + dimensions must be obeyed by the client. For more details, see + xdg_toplevel.set_fullscreen. + + + + + The surface is being resized. The window geometry specified in the + configure event is a maximum; the client cannot resize beyond it. + Clients that have aspect ratio or cell sizing configuration can use + a smaller size, however. + + + + + Client window decorations should be painted as if the window is + active. Do not assume this means that the window actually has + keyboard or pointer focus. + + + + + The window is currently in a tiled layout and the left edge is + considered to be adjacent to another part of the tiling grid. + + + + + The window is currently in a tiled layout and the right edge is + considered to be adjacent to another part of the tiling grid. + + + + + The window is currently in a tiled layout and the top edge is + considered to be adjacent to another part of the tiling grid. + + + + + The window is currently in a tiled layout and the bottom edge is + considered to be adjacent to another part of the tiling grid. + + + + + + + Set a maximum size for the window. + + The client can specify a maximum size so that the compositor does + not try to configure the window beyond this size. + + The width and height arguments are in window geometry coordinates. + See xdg_surface.set_window_geometry. + + Values set in this way are double-buffered. They will get applied + on the next commit. + + The compositor can use this information to allow or disallow + different states like maximize or fullscreen and draw accurate + animations. + + Similarly, a tiling window manager may use this information to + place and resize client windows in a more effective way. + + The client should not rely on the compositor to obey the maximum + size. The compositor may decide to ignore the values set by the + client and request a larger size. + + If never set, or a value of zero in the request, means that the + client has no expected maximum size in the given dimension. + As a result, a client wishing to reset the maximum size + to an unspecified state can use zero for width and height in the + request. + + Requesting a maximum size to be smaller than the minimum size of + a surface is illegal and will result in a protocol error. + + The width and height must be greater than or equal to zero. Using + strictly negative values for width and height will result in a + protocol error. + + + + + + + + Set a minimum size for the window. + + The client can specify a minimum size so that the compositor does + not try to configure the window below this size. + + The width and height arguments are in window geometry coordinates. + See xdg_surface.set_window_geometry. + + Values set in this way are double-buffered. They will get applied + on the next commit. + + The compositor can use this information to allow or disallow + different states like maximize or fullscreen and draw accurate + animations. + + Similarly, a tiling window manager may use this information to + place and resize client windows in a more effective way. + + The client should not rely on the compositor to obey the minimum + size. The compositor may decide to ignore the values set by the + client and request a smaller size. + + If never set, or a value of zero in the request, means that the + client has no expected minimum size in the given dimension. + As a result, a client wishing to reset the minimum size + to an unspecified state can use zero for width and height in the + request. + + Requesting a minimum size to be larger than the maximum size of + a surface is illegal and will result in a protocol error. + + The width and height must be greater than or equal to zero. Using + strictly negative values for width and height will result in a + protocol error. + + + + + + + + Maximize the surface. + + After requesting that the surface should be maximized, the compositor + will respond by emitting a configure event. Whether this configure + actually sets the window maximized is subject to compositor policies. + The client must then update its content, drawing in the configured + state. The client must also acknowledge the configure when committing + the new content (see ack_configure). + + It is up to the compositor to decide how and where to maximize the + surface, for example which output and what region of the screen should + be used. + + If the surface was already maximized, the compositor will still emit + a configure event with the "maximized" state. + + If the surface is in a fullscreen state, this request has no direct + effect. It may alter the state the surface is returned to when + unmaximized unless overridden by the compositor. + + + + + + Unmaximize the surface. + + After requesting that the surface should be unmaximized, the compositor + will respond by emitting a configure event. Whether this actually + un-maximizes the window is subject to compositor policies. + If available and applicable, the compositor will include the window + geometry dimensions the window had prior to being maximized in the + configure event. The client must then update its content, drawing it in + the configured state. The client must also acknowledge the configure + when committing the new content (see ack_configure). + + It is up to the compositor to position the surface after it was + unmaximized; usually the position the surface had before maximizing, if + applicable. + + If the surface was already not maximized, the compositor will still + emit a configure event without the "maximized" state. + + If the surface is in a fullscreen state, this request has no direct + effect. It may alter the state the surface is returned to when + unmaximized unless overridden by the compositor. + + + + + + Make the surface fullscreen. + + After requesting that the surface should be fullscreened, the + compositor will respond by emitting a configure event. Whether the + client is actually put into a fullscreen state is subject to compositor + policies. The client must also acknowledge the configure when + committing the new content (see ack_configure). + + The output passed by the request indicates the client's preference as + to which display it should be set fullscreen on. If this value is NULL, + it's up to the compositor to choose which display will be used to map + this surface. + + If the surface doesn't cover the whole output, the compositor will + position the surface in the center of the output and compensate with + with border fill covering the rest of the output. The content of the + border fill is undefined, but should be assumed to be in some way that + attempts to blend into the surrounding area (e.g. solid black). + + If the fullscreened surface is not opaque, the compositor must make + sure that other screen content not part of the same surface tree (made + up of subsurfaces, popups or similarly coupled surfaces) are not + visible below the fullscreened surface. + + + + + + + Make the surface no longer fullscreen. + + After requesting that the surface should be unfullscreened, the + compositor will respond by emitting a configure event. + Whether this actually removes the fullscreen state of the client is + subject to compositor policies. + + Making a surface unfullscreen sets states for the surface based on the following: + * the state(s) it may have had before becoming fullscreen + * any state(s) decided by the compositor + * any state(s) requested by the client while the surface was fullscreen + + The compositor may include the previous window geometry dimensions in + the configure event, if applicable. + + The client must also acknowledge the configure when committing the new + content (see ack_configure). + + + + + + Request that the compositor minimize your surface. There is no + way to know if the surface is currently minimized, nor is there + any way to unset minimization on this surface. + + If you are looking to throttle redrawing when minimized, please + instead use the wl_surface.frame event for this, as this will + also work with live previews on windows in Alt-Tab, Expose or + similar compositor features. + + + + + + This configure event asks the client to resize its toplevel surface or + to change its state. The configured state should not be applied + immediately. See xdg_surface.configure for details. + + The width and height arguments specify a hint to the window + about how its surface should be resized in window geometry + coordinates. See set_window_geometry. + + If the width or height arguments are zero, it means the client + should decide its own window dimension. This may happen when the + compositor needs to configure the state of the surface but doesn't + have any information about any previous or expected dimension. + + The states listed in the event specify how the width/height + arguments should be interpreted, and possibly how it should be + drawn. + + Clients must send an ack_configure in response to this event. See + xdg_surface.configure and xdg_surface.ack_configure for details. + + + + + + + + + The close event is sent by the compositor when the user + wants the surface to be closed. This should be equivalent to + the user clicking the close button in client-side decorations, + if your application has any. + + This is only a request that the user intends to close the + window. The client may choose to ignore this request, or show + a dialog to ask the user to save their data, etc. + + + + + + + A popup surface is a short-lived, temporary surface. It can be used to + implement for example menus, popovers, tooltips and other similar user + interface concepts. + + A popup can be made to take an explicit grab. See xdg_popup.grab for + details. + + When the popup is dismissed, a popup_done event will be sent out, and at + the same time the surface will be unmapped. See the xdg_popup.popup_done + event for details. + + Explicitly destroying the xdg_popup object will also dismiss the popup and + unmap the surface. Clients that want to dismiss the popup when another + surface of their own is clicked should dismiss the popup using the destroy + request. + + A newly created xdg_popup will be stacked on top of all previously created + xdg_popup surfaces associated with the same xdg_toplevel. + + The parent of an xdg_popup must be mapped (see the xdg_surface + description) before the xdg_popup itself. + + The x and y arguments passed when creating the popup object specify + where the top left of the popup should be placed, relative to the + local surface coordinates of the parent surface. See + xdg_surface.get_popup. An xdg_popup must intersect with or be at least + partially adjacent to its parent surface. + + The client must call wl_surface.commit on the corresponding wl_surface + for the xdg_popup state to take effect. + + + + + + + + + This destroys the popup. Explicitly destroying the xdg_popup + object will also dismiss the popup, and unmap the surface. + + If this xdg_popup is not the "topmost" popup, a protocol error + will be sent. + + + + + + This request makes the created popup take an explicit grab. An explicit + grab will be dismissed when the user dismisses the popup, or when the + client destroys the xdg_popup. This can be done by the user clicking + outside the surface, using the keyboard, or even locking the screen + through closing the lid or a timeout. + + If the compositor denies the grab, the popup will be immediately + dismissed. + + This request must be used in response to some sort of user action like a + button press, key press, or touch down event. The serial number of the + event should be passed as 'serial'. + + The parent of a grabbing popup must either be an xdg_toplevel surface or + another xdg_popup with an explicit grab. If the parent is another + xdg_popup it means that the popups are nested, with this popup now being + the topmost popup. + + Nested popups must be destroyed in the reverse order they were created + in, e.g. the only popup you are allowed to destroy at all times is the + topmost one. + + When compositors choose to dismiss a popup, they may dismiss every + nested grabbing popup as well. When a compositor dismisses popups, it + will follow the same dismissing order as required from the client. + + The parent of a grabbing popup must either be another xdg_popup with an + active explicit grab, or an xdg_popup or xdg_toplevel, if there are no + explicit grabs already taken. + + If the topmost grabbing popup is destroyed, the grab will be returned to + the parent of the popup, if that parent previously had an explicit grab. + + If the parent is a grabbing popup which has already been dismissed, this + popup will be immediately dismissed. If the parent is a popup that did + not take an explicit grab, an error will be raised. + + During a popup grab, the client owning the grab will receive pointer + and touch events for all their surfaces as normal (similar to an + "owner-events" grab in X11 parlance), while the top most grabbing popup + will always have keyboard focus. + + + + + + + + This event asks the popup surface to configure itself given the + configuration. The configured state should not be applied immediately. + See xdg_surface.configure for details. + + The x and y arguments represent the position the popup was placed at + given the xdg_positioner rule, relative to the upper left corner of the + window geometry of the parent surface. + + + + + + + + + + The popup_done event is sent out when a popup is dismissed by the + compositor. The client should destroy the xdg_popup object at this + point. + + + + + diff --git a/wld b/wld new file mode 160000 index 0000000..ea4eccb --- /dev/null +++ b/wld @@ -0,0 +1 @@ +Subproject commit ea4eccb64cfcfc508b029a530fc434d6e6695af5