pax_global_header00006660000000000000000000000064151377347370014533gustar00rootroot0000000000000052 comment=9680d2fe7aae8e8b060f7283922afcc8ebd7d8d5 labwc-tweaks-0.1.0/000077500000000000000000000000001513773473700141155ustar00rootroot00000000000000labwc-tweaks-0.1.0/.github/000077500000000000000000000000001513773473700154555ustar00rootroot00000000000000labwc-tweaks-0.1.0/.github/workflows/000077500000000000000000000000001513773473700175125ustar00rootroot00000000000000labwc-tweaks-0.1.0/.github/workflows/build.yml000066400000000000000000000036261513773473700213430ustar00rootroot00000000000000name: CI on: pull_request: branches: - '*' jobs: build: name: Build timeout-minutes: 20 strategy: fail-fast: false matrix: name: [ Arch, Debian ] include: - name: Arch os: ubuntu-latest container: archlinux:base-devel - name: Debian os: ubuntu-latest container: debian:trixie runs-on: ${{ matrix.os }} container: ${{ matrix.container }} steps: - name: Checkout uses: actions/checkout@v4 - name: Install Arch Linux dependencies if: matrix.name == 'Arch' run: | pacman-key --init pacman -Syu --noconfirm packages=( clang cmake git libxml2 qt6-base qt6-tools ) pacman -S --noconfirm ${packages[@]} - name: Install Debian Testing dependencies if: matrix.name == 'Debian' run: | apt-get update apt-get upgrade -y apt-get install -y cmake clang g++ gcc git \ libglib2.0 libgl1-mesa-dev libxml2-dev pkg-config \ qt6-base-dev qt6-l10n-tools \ qt6-tools-dev qt6-tools-dev-tools # These builds are executed on all runners - name: Build with gcc run: | export CC=gcc export CXX=g++ cmake \ -D CMAKE_BUILD_TYPE=Release \ -B build-gcc \ -S . cmake --build build-gcc --verbose - name: Build with clang run: | export CC=clang export CXX=clang++ cmake \ -D CMAKE_BUILD_TYPE=Release \ -B build-clang \ -S . cmake --build build-clang --verbose - name: Run tests run: | ctest --verbose --force-new-ctest-process --test-dir build-gcc labwc-tweaks-0.1.0/.gitignore000066400000000000000000000000201513773473700160750ustar00rootroot00000000000000build*/ *.user* labwc-tweaks-0.1.0/BSD-3-Clause000066400000000000000000000027131513773473700160250ustar00rootroot00000000000000License: BSD-3-Clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. labwc-tweaks-0.1.0/CMakeLists.txt000066400000000000000000000157571513773473700166740ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.5) project(labwc-tweaks VERSION 0.1.0 LANGUAGES CXX ) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") include(Config.cmake) # QtCreator doesn't use the system locale and I see no way to prefix with LANG=XYZ.UTF-8 the command, # so enabling these 2 settings we can test any language, see initLocale() in main.cpp. set(PROJECT_TRANSLATION_TEST_ENABLED 0 CACHE STRING "Whether to enable translation testing [default: 0]") set(PROJECT_TRANSLATION_TEST_LANGUAGE "en" CACHE STRING "Country code of language to test in IDE [default: en]") set(PROJECT_QT_VERSION 6 CACHE STRING "Qt version to use [Default: 6]") option(PROJECT_TRANSLATIONS_UPDATE "Update source translations [default: OFF]" OFF) if(ASAN) MESSAGE(NOTICE "Use Address Sanitizer") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize=undefined") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined") endif() find_package(QT NAMES Qt${PROJECT_QT_VERSION}) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets LinguistTools) find_package(PkgConfig REQUIRED) pkg_search_module(GLIB REQUIRED glib-2.0) find_package(LibXml2 REQUIRED) set(PROJECT_SOURCES src/main.cpp src/maindialog.cpp src/maindialog.h src/layoutmodel.cpp src/layoutmodel.h src/environment.cpp src/environment.h src/setting.cpp src/setting.h src/settings.cpp src/settings.h src/xml.cpp src/xml.h src/find-themes.cpp src/find-themes.h src/pair.h src/parse-bool.cpp src/parse-bool.h src/nodename.cpp src/nodename.h src/appearance.cpp src/appearance.h src/appearance.ui src/behaviour.cpp src/behaviour.h src/behaviour.ui src/mouse.cpp src/mouse.h src/mouse.ui src/keyboard.cpp src/keyboard.h src/keyboard.ui src/touchscreen.cpp src/touchscreen.h src/touchscreen.ui src/about.cpp src/about.h src/about.ui src/template.cpp src/template.h src/template.ui ) set(PROJECT_OTHER_FILES .github/workflows/build.yml README.md ) file(GLOB PROJECT_TRANSLATION_SOURCES "${PROJECT_TRANSLATIONS_DIR}/*") source_group("" FILES ${PROJECT_SOURCES} ${PROJECT_TRANSLATION_SOURCES} ) #=================================================================================================== # Translations #=================================================================================================== include(GNUInstallDirs) include(LXQtTranslate) lxqt_translate_ts(PROJECT_QM_FILES SOURCES ${PROJECT_SOURCES} TEMPLATE ${PROJECT_ID} TRANSLATION_DIR "${PROJECT_TRANSLATIONS_DIR}" UPDATE_TRANSLATIONS ${PROJECT_TRANSLATIONS_UPDATE} INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_ID}/translations" ) lxqt_translate_desktop(PROJECT_DESKTOP_FILES SOURCES "${CMAKE_BINARY_DIR}/${PROJECT_APPSTREAM_ID}.desktop.in" TRANSLATION_DIR "${PROJECT_TRANSLATIONS_DIR}" USE_YAML ) #=================================================================================================== # Tests #=================================================================================================== include(CTest) add_executable(t1000 tests/t1000-add-xpath-node.cpp tests/tap.cpp src/xml.cpp src/parse-bool.cpp src/nodename.cpp) target_link_libraries(t1000 PRIVATE ${GLIB_LDFLAGS} ${LIBXML2_LIBRARIES}) target_include_directories(t1000 PRIVATE ${GLIB_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR}) add_test(t1000 t1000) add_executable(t1001 tests/t1001-nodenames.cpp tests/tap.cpp src/parse-bool.cpp src/nodename.cpp) target_link_libraries(t1001 PRIVATE ${GLIB_LDFLAGS} ${LIBXML2_LIBRARIES}) target_include_directories(t1001 PRIVATE ${GLIB_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR}) add_test(t1001 t1001) #=================================================================================================== # Application #=================================================================================================== qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION ${PROJECT_SOURCES} ${PROJECT_DESKTOP_FILES} ${PROJECT_OTHER_FILES} ${PROJECT_QM_FILES} ${PROJECT_TRANSLATION_SOURCES} ) set(PROJECT_ICON_SYSTEM_PATH "${CMAKE_INSTALL_FULL_DATADIR}/icons/hicolor/scalable/apps") file(COPY_FILE "${CMAKE_SOURCE_DIR}/data/${PROJECT_APPSTREAM_ID}.svg" "${CMAKE_BINARY_DIR}/${PROJECT_APPSTREAM_ID}.svg" ) target_compile_definitions(${PROJECT_NAME} PRIVATE APPLICATION_NAME="${PROJECT_NAME}" APPLICATION_VERSION="${PROJECT_VERSION}" PROJECT_ID="${PROJECT_ID}" PROJECT_APPSTREAM_ID="${PROJECT_APPSTREAM_ID}" PROJECT_DATA_DIR="${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}" PROJECT_ICON_SYSTEM_PATH="${PROJECT_ICON_SYSTEM_PATH}" PROJECT_TRANSLATION_TEST_ENABLED=${PROJECT_TRANSLATION_TEST_ENABLED} PROJECT_TRANSLATION_TEST_LANGUAGE="${PROJECT_TRANSLATION_TEST_LANGUAGE}" ) target_include_directories(${PROJECT_NAME} PRIVATE ${GLIB_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} src ) target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${GLIB_LDFLAGS} ${LIBXML2_LIBRARIES} ) #target_link_options(${PROJECT_NAME} BEFORE PUBLIC -fsanitize=undefined PUBLIC -fsanitize=address) #=================================================================================================== # Installation #=================================================================================================== configure_file("${CMAKE_SOURCE_DIR}/data/${PROJECT_APPSTREAM_ID}.desktop.in" "${CMAKE_BINARY_DIR}/${PROJECT_APPSTREAM_ID}.desktop.in" @ONLY ) configure_file("${CMAKE_SOURCE_DIR}/data/${PROJECT_APPSTREAM_ID}.appdata.xml.in" "${CMAKE_BINARY_DIR}/${PROJECT_APPSTREAM_ID}.appdata.xml" @ONLY ) install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_APPSTREAM_ID}.appdata.xml" DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo" ) install(FILES "${PROJECT_DESKTOP_FILES}" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" ) install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_APPSTREAM_ID}.svg" # Don't use PROJECT_ICON_SYSTEM_PATH here which is absolute and doesn't take prefixes into account DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps" ) qt_finalize_executable(${PROJECT_NAME}) #=================================================================================================== # Configuration report #=================================================================================================== message(STATUS " Project name: ${PROJECT_NAME} Version: ${PROJECT_VERSION} Qt version: ${QT_VERSION} Build type: ${CMAKE_BUILD_TYPE} Install prefix: ${CMAKE_INSTALL_PREFIX} Update translations before build: ${PROJECT_TRANSLATIONS_UPDATE} ") labwc-tweaks-0.1.0/Config.cmake000066400000000000000000000036051513773473700163300ustar00rootroot00000000000000#=============================================================================== # Editable project configuration # # Essential, non translatable application information (except DESCRIPTION). # Translatable strings are passed via code. #=============================================================================== set(PROJECT_ID "labwc-tweaks") list(APPEND PROJECT_CATEGORIES "Qt;Settings;DesktopSettings") # Freedesktop menu categories list(APPEND PROJECT_KEYWORDS "labwc;wayland;compositor") set(PROJECT_AUTHOR_NAME "Labwc Team") set(PROJECT_COPYRIGHT_YEAR "2024") # TODO: from git set(PROJECT_DESCRIPTION "Labwc Wayland compositor settings") set(PROJECT_ORGANIZATION_NAME "labwc") set(PROJECT_ORGANIZATION_URL "${PROJECT_ORGANIZATION_NAME}.github.io") set(PROJECT_ORGANIZATION_ID "io.github.${PROJECT_ORGANIZATION_NAME}") set(PROJECT_REPOSITORY_URL "https://github.com/${PROJECT_ORGANIZATION_NAME}/${PROJECT_ID}") set(PROJECT_REPOSITORY_BRANCH "master") set(PROJECT_HOMEPAGE_URL ${PROJECT_REPOSITORY_URL}) # TODO: "https://${PROJECT_ORGANIZATION_URL}/${PROJECT_ID}" set(PROJECT_SPDX_ID "GPL-2.0-only") set(PROJECT_TRANSLATIONS_DIR "${CMAKE_SOURCE_DIR}/data/translations") set(PROJECT_SCREENSHOT_URL "https://raw.githubusercontent.com/labwc/labwc-tweaks/refs/heads/master/data/screenshot.png") #=============================================================================== # Appstream #=============================================================================== set(PROJECT_APPSTREAM_SPDX_ID "CC0-1.0") set(PROJECT_APPSTREAM_ID "labwc_tweaks") #=============================================================================== # Adapt to CMake variables #=============================================================================== set(${PROJECT_NAME}_DESCRIPTION "${PROJECT_DESCRIPTION}") set(${PROJECT_NAME}_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL}") labwc-tweaks-0.1.0/LICENSE000066400000000000000000000432541513773473700151320ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. labwc-tweaks-0.1.0/README.md000066400000000000000000000045401513773473700153770ustar00rootroot00000000000000[![CI]](https://github.com/labwc/labwc-tweaks/actions/workflows/build.yml)

labwc-tweaks

A GUI settings application for labwc

# About the Project ### Description 1. GUI for managing settings in `~/.config/labwc{rc.xml,environment}` # Getting Started ### Usage Use environment variable `LABWC_CONFIG_DIR` to specify a non-standard location for configuration files. ### dependencies Runtime: - Qt6 base - libxml2 - glib2 Build: - CMake - Qt Linguist Tools - Git (optional, to pull latest VCS checkouts) ### build `CMAKE_BUILD_TYPE` is usually set to `Release`, though `None` might be a valid [alternative].
`CMAKE_INSTALL_PREFIX` has to be set to `/usr` on most operating systems. ```bash cmake -B build -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr -W no-dev cmake --build build --verbose ``` ### test ```bash ctest --verbose --force-new-ctest-process --test-dir build ``` ### install Using `sudo make install` is discouraged, instead use the system package manager where possible. In this packaging simulation, CMake installs the binary to /usr/bin and data files to their respective locations in a "package" directory. ```bash DESTDIR="$(pwd)/package" cmake --install build ``` If you find it a useful tool and want to expand its scope, feel free. ### packages [![Packaging status]](https://repology.org/project/labwc-tweaks/versions) ### translations For contributing translations the [LXQt Weblate] platform can be used. [![Translation status]](https://translate.lxqt-project.org/widgets/labwc/) ### licenses - labwc-tweaks is licensed under the [GPL-2.0-only] license - LXQt build tools cmake modules are licensed under the [BSD-3-Clause] license. [alternative]: https://wiki.archlinux.org/title/CMake_package_guidelines#Fixing_the_automatic_optimization_flag_override [BSD-3-Clause]: BSD-3-Clause [CI]: https://github.com/labwc/labwc-tweaks/actions/workflows/build.yml/badge.svg [GPL-2.0-only]: LICENSE [LXQt Weblate]: https://translate.lxqt-project.org/projects/labwc/labwc-tweaks/ [Packaging status]: https://repology.org/badge/vertical-allrepos/labwc-tweaks.svg [Translation status]: https://translate.lxqt-project.org/widgets/labwc/-/labwc-tweaks/multi-auto.svg labwc-tweaks-0.1.0/bin/000077500000000000000000000000001513773473700146655ustar00rootroot00000000000000labwc-tweaks-0.1.0/bin/gen-layout-list000077500000000000000000000056141513773473700176560ustar00rootroot00000000000000#!/usr/bin/env python3 from enum import Enum HEADER="""#pragma once #include #include // Auto-generated based on "/usr/share/X11/xkb/rules/evdev.lst" struct layout { QString code; QString description; }; static std::vector evdev_lst_layouts = {""" FOOTER="};" class Layout(): def __init__(self, layout, variant, description): self.layout=layout self.variant=variant self.description=description def __lt__(self, other): return self.description < other.description def get_layout(self): if not self.variant: return self.layout return f"{self.layout}({self.variant})" def get_description(self): return self.description def generate_code(layouts): print(HEADER) for layout in layouts: print(f' {{ "{layout.get_layout()}", "{layout.get_description()}" }},') print(FOOTER) def main(): with open("/usr/share/X11/xkb/rules/evdev.lst", 'r', encoding='UTF-8') as f: lines = f.read().split('\n') section_type=Enum('section_type', 'NONE LAYOUT VARIANT') section = section_type.NONE layouts = [] for line in lines: if line.startswith('!'): if line == "! layout": section = section_type.LAYOUT elif line == "! variant": section = section_type.VARIANT else: section = section_type.NONE continue # # The 'layout' section looks like this: # ! layout # al Albanian # et Amharic # am Armenian # ara Arabic # eg Arabic (Egypt) # ... # if section == section_type.LAYOUT: fields = line.strip().split(None, maxsplit=1) if not fields: continue layout = fields[0] description = fields[1] layouts.append(Layout(layout, None, description)) # # The 'variant' section looks like this: # ! variant # plisi al: Albanian (Plisi) # veqilharxhi al: Albanian (Veqilharxhi) # phonetic am: Armenian (phonetic) # phonetic-alt am: Armenian (alt. phonetic) # eastern am: Armenian (eastern) # if section == section_type.VARIANT: fields = line.strip().split(None, maxsplit=1) if not fields: continue variant = fields[0] fields = fields[1].strip().split(':', maxsplit=1) if not fields: continue layout = fields[0] description = fields[1].strip() layouts.append(Layout(layout, variant, description)) generate_code(sorted(layouts)) if __name__ == '__main__': main() labwc-tweaks-0.1.0/bin/lxqt-transupdate000077500000000000000000000044431513773473700201400ustar00rootroot00000000000000#!/bin/sh #============================================================================= # Copyright 2018 Alf Gaida # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #============================================================================= # lxqt-transupdate # Update LXQt translation files. # just to be sure - for distributions that user qtchooser # Debian and derivatives, Fedora, FreeBSD, Mageia, OpenMandriva, PCLinuxOS export QT_SELECT=6 TEMPLATES=$(find . -name \*.ts | grep -v '_') for i in $TEMPLATES; do echo "\n\n==== $i ====\n" TRANSDIR=$(dirname $i) SOURCEDIR=$(dirname $TRANSDIR) # template-update echo "== Template Update ==" echo "lupdate $SOURCEDIR -ts $i -locations absolute -no-obsolete\n" lupdate $SOURCEDIR -ts $i -locations absolute -no-obsolete echo echo "== Language updates ==" echo "lupdate $SOURCEDIR -ts $TRANSDIR/*_*.ts -locations absolute -no-obsolete\n" lupdate $SOURCEDIR -ts $TRANSDIR/*_*.ts -locations absolute -no-obsolete done labwc-tweaks-0.1.0/bootstrap000077500000000000000000000001721513773473700160600ustar00rootroot00000000000000#!/bin/sh cmake \ -D ASAN=1 \ -B build export LABWC_TWEAKS_SHOW_TEMPLATE=1 cmake --build build && build/labwc-tweaks labwc-tweaks-0.1.0/cmake/000077500000000000000000000000001513773473700151755ustar00rootroot00000000000000labwc-tweaks-0.1.0/cmake/LXQtTranslate.cmake000066400000000000000000000205021513773473700207040ustar00rootroot00000000000000#============================================================================= # Copyright 2014 Luís Pereira # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #============================================================================= # # funtion lxqt_translate_ts(qmFiles # [UPDATE_TRANSLATIONS [Yes | No]] # SOURCES # [UPDATE_OPTIONS] update_options # [TEMPLATE] translation_template # [TRANSLATION_DIR] translation_directory # [INSTALL_DIR] install_directory # [COMPONENT] component # ) # Output: # qmFiles The generated compiled translations (.qm) files # # UPDATE_TRANSLATIONS Optional flag. Setting it to Yes, extracts and # compiles the translations. Setting it No, only # compiles them. # # UPDATE_OPTIONS Optional options to lupdate when UPDATE_TRANSLATIONS # is True. # # TEMPLATE Optional translations files base name. Defaults to # ${PROJECT_NAME}. An .ts extensions is added. # # TRANSLATION_DIR Optional path to the directory with the .ts files, # relative to the CMakeList.txt. Defaults to # "translations". # # INSTALL_DIR Optional destination of the file compiled files (qmFiles). # If not present no installation is performed # # COMPONENT Optional install component. Only effective if INSTALL_DIR # present. Defaults to "Runtime". # function(lxqt_translate_ts qmFiles) set(oneValueArgs UPDATE_TRANSLATIONS TEMPLATE TRANSLATION_DIR INSTALL_DIR COMPONENT ) set(multiValueArgs SOURCES UPDATE_OPTIONS) cmake_parse_arguments(TR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if (NOT DEFINED TR_UPDATE_TRANSLATIONS) set(TR_UPDATE_TRANSLATIONS "No") endif() if (NOT DEFINED TR_UPDATE_OPTIONS) set(TR_UPDATE_OPTIONS "") endif() if(NOT DEFINED TR_TEMPLATE) set(TR_TEMPLATE "${PROJECT_NAME}") endif() if (NOT DEFINED TR_TRANSLATION_DIR) set(TR_TRANSLATION_DIR "translations") endif() get_filename_component(TR_TRANSLATION_DIR "${TR_TRANSLATION_DIR}" ABSOLUTE) if (EXISTS "${TR_TRANSLATION_DIR}") file(GLOB tsFiles "${TR_TRANSLATION_DIR}/${TR_TEMPLATE}_*.ts") set(templateFile "${TR_TRANSLATION_DIR}/${TR_TEMPLATE}.ts") endif () if (TR_UPDATE_TRANSLATIONS) qt6_create_translation(QMS ${TR_SOURCES} ${templateFile} OPTIONS ${TR_UPDATE_OPTIONS} ) qt6_create_translation(QM ${TR_SOURCES} ${tsFiles} OPTIONS ${TR_UPDATE_OPTIONS} ) else() qt6_add_translation(QM ${tsFiles}) endif() if(TR_UPDATE_TRANSLATIONS) add_custom_target("update_${TR_TEMPLATE}_ts" ALL DEPENDS ${QMS}) endif() if(DEFINED TR_INSTALL_DIR) if(NOT DEFINED TR_COMPONENT) set(TR_COMPONENT "Runtime") endif() install(FILES ${QM} DESTINATION "${TR_INSTALL_DIR}" COMPONENT "${TR_COMPONENT}" ) endif() set(${qmFiles} ${QM} PARENT_SCOPE) endfunction() #============================================================================= # The lxqt_translate_desktop() function was copied from the # LXQt LXQtTranslate.cmake # # Original Author: Alexander Sokolov # # funtion lxqt_translate_desktop(_RESULT # SOURCES # [TRANSLATION_DIR] translation_directory # [USE_YAML] # ) # Output: # _RESULT The generated .desktop (.desktop) files # # Input: # # SOURCES List of input desktop files (.destktop.in) to be translated # (merged), relative to the CMakeList.txt. # # TRANSLATION_DIR Optional path to the directory with the .ts files, # relative to the CMakeList.txt. Defaults to # "translations". # # USE_YAML Flag if *.desktop.yaml translation should be used. #============================================================================= find_package(Perl REQUIRED) function(lxqt_translate_desktop _RESULT) # Parse arguments *************************************** set(options USE_YAML) set(oneValueArgs TRANSLATION_DIR) set(multiValueArgs SOURCES) cmake_parse_arguments(_ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) # check for unknown arguments set(_UNPARSED_ARGS ${_ARGS_UNPARSED_ARGUMENTS}) if (NOT ${_UNPARSED_ARGS} STREQUAL "") MESSAGE(FATAL_ERROR "Unknown arguments '${_UNPARSED_ARGS}'.\n" "See lxqt_translate_desktop() documentation for more information.\n" ) endif() if (NOT DEFINED _ARGS_SOURCES) set(${_RESULT} "" PARENT_SCOPE) return() else() set(_sources ${_ARGS_SOURCES}) endif() if (NOT DEFINED _ARGS_TRANSLATION_DIR) set(_translationDir "translations") else() set(_translationDir ${_ARGS_TRANSLATION_DIR}) endif() get_filename_component (_translationDir ${_translationDir} ABSOLUTE) foreach (_inFile ${_sources}) get_filename_component(_inFile ${_inFile} ABSOLUTE) get_filename_component(_fileName ${_inFile} NAME_WE) #Extract the real extension ............ get_filename_component(_fileExt ${_inFile} EXT) string(REPLACE ".in" "" _fileExt ${_fileExt}) string(REGEX REPLACE "^\\.([^.].*)$" "\\1" _fileExt ${_fileExt}) #....................................... set(_outFile "${CMAKE_CURRENT_BINARY_DIR}/${_fileName}.${_fileExt}") if (_ARGS_USE_YAML) add_custom_command(OUTPUT ${_outFile} COMMAND ${PERL_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/LXQtTranslateDesktopYaml.pl ${_inFile} ${_fileName} ${_translationDir}/${_fileName}[_.]*${_fileExt}.yaml >> ${_outFile} VERBATIM COMMENT "Generating ${_fileName}.${_fileExt}" ) else () file(GLOB _translations ${_translationDir}/${_fileName}[_.]*${_fileExt} ) list(SORT _translations) add_custom_command(OUTPUT ${_outFile} COMMAND grep -v -a "#TRANSLATIONS_DIR=" ${_inFile} > ${_outFile} VERBATIM COMMENT "Generating ${_fileName}.${_fileExt}" ) if (_translations) add_custom_command(OUTPUT ${_outFile} COMMAND grep -h -a "\\[.*]\\s*=" ${_translations} >> ${_outFile} VERBATIM APPEND ) endif () endif () set(__result ${__result} ${_outFile}) endforeach() set(${_RESULT} ${__result} PARENT_SCOPE) endfunction(lxqt_translate_desktop) labwc-tweaks-0.1.0/cmake/LXQtTranslateDesktopYaml.pl000066400000000000000000000030241513773473700224140ustar00rootroot00000000000000use strict; binmode(STDOUT, ":encoding(utf8)"); binmode(STDERR, ":encoding(utf8)"); my $desktop_in = $ARGV[0]; my $filename_base = $ARGV[1]; my @translation_files = glob($ARGV[2]); my $section_re = qr/^\[([^\]]+)]/o; my $lang_re = qr/^.*${filename_base}_([^.]+)\..+$/o; my $strip_re = qr/#TRANSLATIONS_DIR=/o; sub flush_translations { my ($curr_section) = @_; if (defined $curr_section) { my $transl_yaml_re = qr/^${curr_section}\/([^: ]+) ?: *([^ ].*)$/; foreach my $file (@translation_files) { my $language = ($file =~ $lang_re ? "[$1]" : ''); open(my $trans_fh, '<:encoding(UTF-8)', $file) or next; while (my $trans_l = <$trans_fh>) { if ($trans_l =~ $transl_yaml_re) { my ($key, $value) = ($1, $2); $value =~ s/^\s+|\s+$//; $value =~ s/^['"]//; $value =~ s/['"]$//; if (length($value)) { # Don't flush empty (untranslated) strings print(STDOUT "$key$language=$value\n"); } } } close($trans_fh); } } } open(my $fh, '<:encoding(UTF-8)', $desktop_in) or die "Could not open file '$desktop_in' $!"; my $curr_section = undef; while (my $line = <$fh>) { if ($line =~ $section_re) { flush_translations($curr_section); $curr_section = $1; } $line =~ $strip_re or print(STDOUT $line); } flush_translations($curr_section); close($fh); labwc-tweaks-0.1.0/data/000077500000000000000000000000001513773473700150265ustar00rootroot00000000000000labwc-tweaks-0.1.0/data/labwc_tweaks.appdata.xml.in000066400000000000000000000016461513773473700222430ustar00rootroot00000000000000 @PROJECT_APPSTREAM_ID@ @PROJECT_APPSTREAM_SPDX_ID@ @PROJECT_SPDX_ID@ @PROJECT_NAME@ @PROJECT_DESCRIPTION@ @PROJECT_DESCRIPTION_HTML@ @PROJECT_ORGANIZATION_NAME@ @PROJECT_AUTHOR_NAME@ @PROJECT_HOMEPAGE_URL@ Screenshot @PROJECT_SCREENSHOT_URL@ @PROJECT_ID@ @PROJECT_APPSTREAM_ID@.desktop @PROJECT_KEYWORDS_HTML@ @PROJECT_RELEASES_HTML@ labwc-tweaks-0.1.0/data/labwc_tweaks.desktop.in000066400000000000000000000001611513773473700214720ustar00rootroot00000000000000[Desktop Entry] Type=Application Exec=@PROJECT_ID@ Icon=@PROJECT_APPSTREAM_ID@ Categories=@PROJECT_CATEGORIES@; labwc-tweaks-0.1.0/data/labwc_tweaks.svg000066400000000000000000000147321513773473700202240ustar00rootroot00000000000000 labwc-tweaks-0.1.0/data/screenshot.png000066400000000000000000001436261513773473700177250ustar00rootroot00000000000000PNG  IHDR<sRGB,gAMA a cHRMz&u0`:pQ< pHYs  tIME ,ǃ IDATxuT׽S K.ҠR"X( RlA 1nnkw ˢ ,<{y9瞣tEG!ԩS7Bq)_<UvB!dAB!l&IB!lv]B!l҆G!w jԂ^pÔwi$ZΩܕE3:C6.lͮٛqԐwE`K9MpBdfԫ++#ld܍I%zVMR!M'Тr搰g5X(AR^3XSJp$sp^mN˶W~*Xç۶~\6&&OB.\!*ĥb'P6D^  ~8"..l]ш&hk#Yd|B@ 3;B1O)] neuM+grܪX9ĺp7)3_Cjoߤ>)qЊ^ezx]͊C)8Q4lL,IvX p9#D1V.ѠriYE7܆BtbNrKױ%#!^Kc 'ˆbRO2J9p^%4+c"V5αky:3%HY?[BAaH9xԀaOĎ(x]|x?gQU@#YRrpfYzdLCxe͖A5OJwMԍ\GBªSN4a>f]GYd;.fbwÀT|KW1NŸQBP|SN\~oeZuD禢*&73|53祧1X{w5C}8'$q6IZP<:Y$$0$z1hYt|FNJ9ue>L&X dBIHZIX'`/ĜJS}FCw=l;xso.e瑛H*E4 _hbk.!Uи&Յ-=}a!ny' 珫:͆ҥKԩSrtBq)_xsp26*@5ԜWw/B!DqX,(]tcbbnh"qHfª:dJ1[n Ti !(\ >|˃r#wY0*!. ]B/n|B!)ysUZ^n+v='Q42^$UKÔ .J$B X6xYO9} ⏱a8{w]BnYۇՓg\t9~wBQ\4M*LٍNr)4wW뿑1-iֺL9Q펪>5\ oIܙ>f'kA >xAafqN2曝̋uə-Bbo',rT*VŊ,;F@G<~Gqd`P&m+~Y}*Ki W:. 0kPpiFu<;q)_G3yp`S V[mKo>Ecnzm6癈$őrOߟrgs /(iRe*K+D?Sg?g=9W}7FB!nts'rY}kA v/1DaN^MRzNKNLqO[ՠr:Llhz^RԭU0yѡWuƜbAABy U1QUM`Ύl4W"?̤Ut/cnTV{C mSw{CHN3Y`l*+L(K=*vJY!TtL;}p7FPIjB+ƛ+)<(x\Õ_1Aqm2wn9E{퉊<:W2n3sw'~ ?ҹذ:*Owbw xu@Ueؐn7 |9p%w'Aw&)ơv]dm⽬$ 'ٜZ}aF^!˦z9;u&rB{eut,<;nV+J BrSci2'16{| WAq9W@S/Dq)xƐc[_'Wd+K**E>zxnԲXH5OЬ'0ؔ߭l$ Crl4}29Z,K >xsx7'CWNwyK^^Q+] //hmݐ(R(b&=rkw,*b]O9dcc#jƏ$z}ɏ?$o@Żq+>Kxt%eL؞'wx|v=5'&hPZ\Y*o >|}>=Lrz866VpB`0憏k-[B.}_m8EDRnYam tZͣ*,~Ӈu бmf3"-17!QۧMGowƔx=-dxdc/yӎF\3 !DIrHOO'##__=q ;5qK2nqHIJ/ wwwppdpQ{Lv 2/F;B< 䦤'>>>ѝ$';d2p8P|c[[`4]pI5ڇگ%!___sK_a%*tG2Y,ڄڮ"\OCEs$5)ۉl.'+_4k,7{,jsViӦtЁh<<~'VNNǏgѢElذA39`^,G_l,^슻tf2͌_O|ϐ Ԯo+eBqe(3`ڷo<<>M :GL2JJJ *Tf@vv6_7GPPɂ;P+W `l?]=g\+evTCcrwL>-_O`M ݙo'Qȣ[0}IrB!nZu-Js 'qHb#&݆Lѷ79c綡 fr14.p͘ Q=ˀZQ3 Btz eqՑw㮎<แ1kՎ!@+1q_spwP E <)9B!M -Q~~~=F,Kvl"-JJr2ND׍G<@s(1 |t*rWKW#b;8:?]Ƒ‚crX 8:5 ܢٜu=JJa@FDNjJ*::nW=B[t7b`0`0G5Yb:ɫf&76 ]ńWX55RFo{≕@E﮵0ƾKh<,e wr5wed۟?xXSNX^*Z̔nߋVxB[`0O ONNU*JiNNFVx[? Nyo4k@Jy ÓQxv2Nsdlkf2n]<$&uM~E68j;4?{w e-cܜ[Ǘ/ai2~%Yݹ-ʠfB!-b4>Zj1|QGw<ۻw/#F! ĞB)XXhjպ"\r-Z$G]qM6lv;&÷Ql \pOٰa/.J2bZOOOF$r:dgg^^^%j܊ȤIسg:t ::=(pq ;Be!22˅nˎRBDDLKOOm+a 1BbCv%躎iUOvvK)(v{l {&ĕ'!DQhHUBnTU-q7F |a0 v#6HuÿjXo5=nqԲnQVHsYF+ǀ7p<#yt:&vGLesSX y,}96BL&S^z]!ooozU*~t|nar` 5^`}YMKR3-el^FG5//`}c G?m4gldc޿FwA;.$%--> IDAT ]spbVrSϜ徸TVXx Lջ8ե=gΐXR/aty5^x/'Rya* F?고dz?p  /7,V !nRQz2ԛoKDӴ+_+U ,U'c\ֆtcu.:pd{yܴixquh#\Fa/*!M0i*6m̦ XԹx<s RBGUlز-kk)Wh#Zٰy#~fJCӌv6KVeI]֦mlZòѯa *ucҚhz>_e[F.ŀƋW 93aU,e0eۼɻmΙÜFbb.CaSz#GkUPb"sa!֮eiۧ6~_77U3clX=/4"(O KmdOyR57Vvj< Dx%7ZUa'BUP/l--cgpԥr03zϔYn=m)k. ;ֱn~E:tsf-[uXD/tK}0k6qSбWreO3c\mxzAnݮxzqc %w]h|v.Tޡ籱cs˽2қOF$([iGu"hu4nљj]?~+xK35[{2y ŽmC4mv $IQ./MI\5MT7{M5GnjCR[:-fH4kexmJx﹧yG/^^c 5ߕ{hD5x\ Tjc'ЫeSxK]%Iq\`'/ҽM Zuȯmx{D vrr㴿Ot WSwlEF@$SAmcvH~)Oo>mhѲ-GT/?m{o~ߧWntr?ڮsK~#U!ekg{jIǗ~#h\p h>WsPݰZw`J֋#vf Jm;9oG2O_a\ֽ٘5jP8v^Px] -V>Ϯ{R;%mPT)ʵ|5FGo"TY),IU"ʃ|؊Q5no&AXxy>. 77P}ajmJ"D@|ˊc׮]{8Ϋ{ڵK%+ 8`!i;b$N*C#BNfkhG9W.ՑJa3u U(#$hmN39`u3]Ne-_O`M ݙo']]aW2'8TPEg/7a]ü VUk]Wo3]=m +\v]#jyrk㯀&$Ʀ凯T8ֱYƊd;A<X>  2D6߿bvLm5 Aγsg*5܅En3˹fV)Sn|oԲmZ ̞d; Nĺnh};~Ugr9HٹUJQ%pAx/6ƒ]Δw#|.@Z~~;6Y'ʞe_ vg:lD=c :v-ÎX~: My Vfr??L BHH+VO3L2yT!yᯬH#84-+B!")m:ƯR]h)˽boWH۽%{BmW)I(eе& 1ٔ+W5xW]ױmʛw23&//(yۏ-[Gc4P4>p4[le4&i:~SEm`:+zB#0{1)Tb 8Pe=|8̣~kH8!*<5eˡM5jjz5w,8og'SE\= ]_8}^(∉W;('4ΟZBޞgkl-k禒@P Y<֊^(.GkpW #0bsxW]ݞ{{+ @nZ"B<Ƕ5>U9뷑[ԯNJR]lB#IMܴTr v-Cx[5-AOT?vTsnÆ Qc0an}[f+ty<Ϳ][c'TglYb*n&߽4bt*wxiA/T   ҹz+5(9",|A;a1&93UŎ7Oolyy%j!!֭[bfȐW;vׯK-sw1pt/2~z?r\L*qa')Za+^x*02g+X݇&mHm/>ٟ9)EHޞ:YY9hd:0i*_M$}٧Ƌ-ctSKN$ԈRA*u׋6pC#.h$'tm yw|9SHJb'O0j]QwŰDmvLO3^ExcT | asv܆rW|g(i:@Q)۾Jc>{~$.s~n2uTԱbDž,grz (ULAPN/a  UbhiFgMJxN{63 Jub3 0p{ܮmdnT܈'6v2#ZƸ9I;/_dۆ#_̫!4aح>T/[s-f 5;S37.^f]:Ǧ]qTtlN0m 93S[6pY| T{|]'Lt #__I$-7;vqPd۩4GT DM͜7a^R=];NaΝ!(ovR}v] /12;Ɋ= `saُ,l>VConos3^~ ^zz"!>V}7h986UF^3hAK-.Yϴ6mϘp_{ǞPKDZ34שٌC4+99ټE8'>b_N"ݖ;9,8~|̑YdQp!yzztEccc < :u ,`ԩrnJ@7Xܙ=O1'T"""nj7 ߊ%,,욯gggݝ(\.IIIdddiOOOQdVkɪb!77eϏ,PIbb"*$''SR%TUr@ff&c6 ݝ4M#<<~K;M||uu:22-1c͚5jeƌr6!n۟K aaa JAAA]s/+׺x{ !n-V'##c2tP|}}v>c222d !K !h,Nj/H=Vp!f̘!avIȎBq[2ͷ i#)i*w; q;)[.o !J&n!mnc0u]#(IOOvTZ҂/]^X PC>2}!׈p~ ,҂cWL qxB[$77OVg]Il9L'1h _ %1 |t*鮴OT[wּkΊ8?+0RH&FՕX|L;A{>ˇ/`,4Ys?<0ed\Q\[!#q3tѱYH!qnir%f0%nFcqVixWo0d<1N<;h?<j'3;OfKdaJ~՝^gz/eiv>_eU/_my O%Peh;/OF<xw>@`"I_= !,q`]ŗ }ܻ1e7s4f:ӐMM95tA>#>ӦQ1F2s% yx:0 |>_C͏%uGк5ۏf]VTjV_ rUת=G|-6[͐f>! ]_d#9{|;5_FʗW@i=1Y}#iؠ)}K?}ĽmK 84JUq<3rMW|"?Σohƶ1s]>VٹӸOZ6L2.]zWr1q~~9WѽCEb=~`ǭMLec#U9Czq tiB"E(`Ȑ(y\ x$da 9*#{9ÿ3JęHujd[׿X&TTO<tvo>LyQaNᴓkQgPJq-dYgVsl^yJ;`u2V@3%bsZ΄`Dv+Nej66ϴy^qies{I ͆iX7O1RlK^TM2u9Š~f6S5؝eiqV+Pt?Ah]4_]r(Ű3m#W۔35 sl';;ë|AE)j<ƌG)]2jbB>P29CDDKB((>59yoŶCX~&L& ɟilٲѣ^5h5-[ּ56﫩98ϣ2љA7*KYӡiڱZQցL>3ϳsFO\ŮH.ӈUs{9Cٱqn[VWiR-w- G`t߯؜GB7i]3].f~< T'z+8Is6_P]޼\"fL{?,JQ{,R!ȇߴah;:W)k +f's?o7Udj0>dS2Өt@D y,kÐ_Z| q`KoRAz坮8 F$gcj]ѹwLq]эx*hiI8WIJR giŊAC !fjY_J O{rb9Oz $'BPXgDps ARmv3~iWc(ڒ[iG9BXx8nE 4 t3Qa6X䡢 4n‡-r8qbuF}}xTk~ V]R} @tb:W&s!I/oeսVq(CXb#ĭ[>sܸOY~}]wMOKqGIG5{DJKS|'+7ߌsk<ȭ3ہ.Lwp#2. F괪˚htLܫnl}v;>YHEzV*MtEx~tsĀv=؝Q?u2kGOTe|'3,;i'nx i^:ʼzjGjdb(2<,T/&@pBt\ y!$)! %(`:s/,!!%$of Pn'Q$$p^|6&G"24[u_Ր wR"4_4jTG2X> XsUPUOACO&`^oN؊oP8/`̈́͘l"|$P$&&&y~"Ze?B\yAT/:%wHzuᵅI: 뺀g]5hj(v?o8O:eŊϱ[rUئ҇Ge夳rhcuoIĹ|9)NDxnA|&,9*#{ws:_3p vg-Oy@cwT<%938*J4-йQ>CZ=:' Eqxn)9Ϣ"~̳xX^}g1rz-Y>:E_Xd_zmZ"Ϯ  ou?>">~cSa-Ż.9I?jl[OпrLӏ!sr_z$ugx? 5'6G˰u7F4&7}Y_^ 33s  MZ. 6" X͘eh&j}Ը@2͙Jzv,7V-'/Ded']S:Jg,H^=|?+\}9HxPݕgi}{h14HvEӃWh(jmv0mԈ%+Bx"U\ځC?0|< )M1/5iN0o>]R cM֟b]{K+^ai>ϿCI买q]\"iv՛bz}_q#C6xnu_Z~[߮x!#ys}򽩧c=N:ef B1W_$N1@a6 /y:u ^Ußì/3_$-- UUqGxt::q..d:¾yf\))) *OΟUJ|sv;4OGxx8r܋]ã}v¼,~@r#ab|0dlEW窜]2P|#< g;q-ێvϽp%DaCݍ1[,ޥ,O6OD݉j2gw^FbOW*@usb4RP]|)pu,kit)UDy%00Ӄ?7ͦWP7wz=!!!ᩀ)Y pir#hF <8pQcY QQ37%|e`(}?۴slO.ϰ6!3ޖʥ!n~2mu(f53WZqV yP@ .1{_mzヘo>F;~6}1f'q]SBJ8yZpqqAiժveXˮsF24\݆]c-iM g#p[,<߲X,7Boy[p̯to[9*^W،[V`tW &?zύiڝiҺ?#7=ΐ!Cضj1ӾR!!^fl6>b.u0 wg>6mgR ('IIIm$#@4RSS o\qO2͸`XW9N233X,>&!]ffNd2pss鮌#;8' !\{/IB哩*}xBQegg;5|Mkz.\ aG!wfڻw/o6Ԯ];Nb}vyxB!*,=;;ӧ3}tB!OfTB!(rrr$!BB!}펎#Bq/#B-++Kwѡ,ۇ*FjẐ5]:u-4usԗqC_!C׹;IEB}˦K_+.a<q4MKwf&n_Dټ};۷oc֍]>_ KykH2ٸf95#?ĕq$)RRRR5 #iiiR( !raNNTdnxQܩRgOQ쌌KC59{I=*'kG&vxУ7'tb&eZ&{|ɚgHNL(guU#8O$:OaajU<ɯGa|9R5yhS5M<wFw L̟Θ+q)L(<.Yu:`xWyϪkYd:#J(4Dܚ5[Y~]/->[O W1 -A!+z7M=/o1oyLu&ߪW<;svZw].`zG2k? iI)µL"72S"}aopqOޔ?.g再DurZ]Fe%L߃'Bg4 ְr4FwϕNq6ξVc,\(V-O}KcJGv(4M#--Ng>sKGؽ?r;5x8e7cDQexwa.5B8r=I&3:Msh^&4;33Wem}ş)]1**">aη(6邚3|lG'5?"5%|ǩy}vEY>Y|''BigpԪ@ȭ\Hp! }6h4ulEJz:۰g2yϳWyuyY|{/%YNny=يg<=7SX<`x_' d+h㷟sM;$$k,⁥1xyyݵpUU%)-- I@@ziaߎ^kDizt5a5;^k`LRɬW.7—[*QOĔl,rbhI {0fq#"0Ֆ x3iXбqdtZU? ^v1kRͷ鸇FV |Ly*o[,7 mqoGPb׽̈&e`۟yR"/ڌ#bP\}":_дe#NrNn`W֋U'& ' +R-? aqPs'ereeBsV;.\5M%j(ILDgtX7j?ST}MMh 4h7bqt:IMM%-- EQIKN999x{{ͰVҢwrqjjP7jeot,>|uFzGםGNj:&f3@u(y`ܱ#{{ Z I2`tŜ V1燢@x2#pHźo;V0jTUغj>ۣ}ynŪWmvٔe_/HMIt*YI[@쉣y{m ɸGLT&d2nMNn ۙ7uRt]ZKG֥XD|r݆+FLs|3ūVxўf?,4I?O`` Kb M}; M y=fu,< *Wx{{sזi4%{N%6~,m5e݆ދѧyNu{6=( 3d'~>~uE3*I IJ٘WGrq6Znv/Γϵ4v\])KԫQnXq=M.]5da!]Zo\#'!$QJxFqYl6N@c8`HXvu׃Gӕ~?uP|,444{ 0y3[A7ĥk+?^H*Wߥ7gLR N qtTjtCMWc%uF `?nD>q)7歑Sc%3Nö͉40-t scȶ`(/\7qfW4]prr賮JO IDAT<溎#+c/ ;"FrD;||qqqzo[߸( qz0K?ű-.ff+|:^vNFIљl[BD;d'qF>yuCrб_/a,}4[&wDsWdew;|{g2͚UTgI-оVEyǬ8Ɋ?¡#+GNҪU+-&&>hX=(IIISbcC8w\KgϒNR222t(B\\^.N_+`bb"III F#b4 ͭ "..ՊNLJũS ?.O<_IHH >>>~9{UGm@rr2 vF#`zyV)q:xyyz0ʅ ʭzpuu%(((Z'Nr Uѣ,Y҈}HN; +WNƒ^Օt6`_`XZh$(((B;pRSS% <κx"DZDbF!Da%;\xŋc0Pp8>}@BÇ2(eJl&-`z=OSdId;e*""Bʔ" GwK<0>:esPNԵ|S_7~[ Mu2u)<">Ӭȼ2j]L6)S0=>$8{zy_Bb(^^n>O课w-GY>|7QH&kWd8x,Ltb֬&j~UMຼlVnHԜ\wsIQkXp;UV( &YukY>+iZ3$MbLy4fԚxntŗ槎E)T1SbuT㧾Dž-S(z}ekXv%Jyc^ڲ]0|3Jx\g3jP}B[1z\ΙLj[6)h=x"/_ڵ˙U_3{]drD-cηxÔ|;ڇ.T]o]g-}s×ە]/ӓ5{}ğ2sLyYJPu>B18j-k2W;)tlNr*y bO,ZMTJGBs~wuu#n\45t:ÇtR(B^oӷot:6gƌwp LT{4UuuR&-i<+m4|30bPsuO^Sfp7}1:Jwǘ6fau,u9ҕf ҨI;L@j|_x{^w 4n݇?ѬإP|.þQh\i:}v*~۵@=ˮ0&T'ǐQ6 2*&st;ҷ[ҨQ#einݿLah,߼ڔOcĶp7{׮~@"Ͽ5RO=7גڵu|qݣ y'Sh_yyJ&`ǭPgvyg4>Whv)Mj()U*׮+`(_nvz>Na0[J_`t`]tyq(ZgVˆ4lLa[ {ԠztAԨ%.5PQf |`՝zRgؤ!jNAN*Lӧ}lK"[Mc~>"vFGvAV=ekUIɩJzjQN4ޗ̊rBw}\ӴI['X+#=Scqy'/PidoYh=f+|;A^W mbgs9G2{LfWC3_)5d* N sڕDڕqхQMqZT4鈨Q;8p>j:f.9 8[vPBIn.iV(',T~_NLf4(CKΓ%UWujG3Uw?kdhvҔ- 6RN$Мv.]pnʧgsxXp SOH@v1sk9<oᱲAĩe7nF=CjdǓ?;T.]DP^:x)35zĬׯxJ k{qֹMo16 lϛJrRuYtU=8k̂%Q ?]OJ% qW yD|~R# q;6PO{xP~vNe_*o%6;+T A!аfdpG=YH O>(@cY:Mi/-.88؎8߭E_jcm>JXGWF=t2߭VGD!?tp®]X >i(w|;TUU>_@Eeܵ#o⮉X;oiEW?Eᥗ^`} 4}qRxkooqf.K՗7$C+~xܙLJ$7gD.&ei+.@~d_ Z U^O>lj#tO|pR'5dȻŅP?djefDZwiTcv,)ڲ) ;8o*կC!nPIM %Yc>! <׹h{p܁ am8,GR^@rv*wF望bں%-˖_ɚ]<om,wAIL:Af߿>&pdgz;[`}gNkEJbG|Z^L uoFj;LؖgvEz ,;Ʉ> gfWL _1[dgX/MZqo0Jy^SV𑋃?7cc8g򦑼{Hav;tC{ٓ$MÚ˱sԸ|8<~bZN1l;Dwĥ]Q;8oCwp[$ܿ,s!`r%((OKq d2ӣljSS!V!:1,Yax4Ձ?6i`BLT7{R~n@e`LL>}f1OH?晟=hyoQ|x:wG[6'WOr"HBL8{L b^+M:@X*x3ǻ̍#6M(4M#--Ng>vEprԜΟYΏ}SrAsV7o7gu(>ZW:؋s ߐ~bi݉u{qByM:wg u/t=g3;_y-G6*Hx^n3Ci8N/hbHBz=f//|%)--^VWx&-ݕ}v\ݺ9nmi8yf6hEn`Za1S<896g=:6,>q:xyyNCUU, FF#Lpp0ǏST{c, !K '55Ujx]P\k^_Z%']^^^^3]凫1 TPA0! )}xBQz nȷX̤ jG9s q[YZ?Cߖ0''%;ӻX.)G?{Eq;5)J HxK/" zKQ)* (M)o "RUPH*5I/>Mm㻙{0تbަՈ+v壩ՙjKWYuz7w;J9{}b,}m+GOy nݕ}I8WVUvq[l2?,VvNZc:u},!v'3at~D |֫cGԺ=}`|Dôe5D)&MO2 Jma ݷq`UgI,TXÔzčlcyu#:iJt3ˀ9jA1aˢ (CCbG7=0@-*Jǔ.*;]%_s'HJ ;ϭ]uBCCOF.-q p:Pb v3$hE~?ϛS: ~ukDR >x%t/go4oX,0Ϸ%hYca˿e~Rc}!.dY]Ѳpe!3%@ xp%A EF8q3@ +3bG; 1绩oG!<ذ)' Anw!bܜ?oّqd MF7-iP236&.\E-O,.Ңs&|V֕+BM%;jy;gfmJR# ?S[χƒB|RB!Oa)`'L9#?7YүOdPe[&:%Q5+I qKK\|l0g3Dž`1ۈX}'\YzIH^);~8rF[?=qWbF@SvcjSjN6QR+*g遚DM-(wj؝FRN'-O-w-oì7WF^M' ̟iV6}osnJ Z5'n]HmI/Kf/n@3 :7.]2l65.mt>vOࢾ<1KEZ ]}53^[vk76݇Xv|Տ'}L6 /I<29~;PK2IV~7|Za_) ?t:DDDH rt:2.W=1^ߨg??.>HHH 33SBQɻBQɫ%BQ~ YYYx<⺈L&6H@1VUB\Nr"ҥ%BvKB!D&!ԓ҅BQ)"G!ti !ԓ !3LxBQ)" !TTT/"UU1c6@1~_B\.x<ñR%_ &++ &[_BˠCBB@χ땂HEbd2aX`!2G!.ۍiK\Di~ÁBȠe!L^%?iM! 4MCQ)@UU ~2u )wq ,rt#BHnҵrjߏqo8s8~WQ b}(㦫]t0,@>X>!2$Zh˛+r9WQQq SϬ_#:%H3}z.lo|ʺ гF:AH~'E$_cU[1i/_1G[ yt]>^kClB%QjF#uөN`f0_Z >x!?p{:u^_/15Zʾ={4m? 9Px] ZTLS^Vs8}t62ٔM,G\tVgk{;q&4YHBN׾c1}bxA-Ӓ1>n,LASi I~39`iQP,Etkv,uu~BJ$8C}=J 8,wp|O6f{`ܗM,݃|u|`G}n9q`lޚ)]>u*׾ˑwr}t8dM{\MCkTXP&XA7a l\\p}>xg^KU+Y{}_/KVjI~ݹ8lZ6ˣ;_ݾ2rw|[cd_E2 ؾ&^@DӨ=U[P-)_}>))Q^l>}clڴI5q+]ZBP+󗨴lsf ޡo} Z x4Uq`Ft hG0T7UCnk/!"~K*43h›=Ϸٝ=׆A8 -==Cݝʹ+I ޼>vu&9bhTBgc,>Չ?WަgiWڢ=-}~m'KͨXN-hAlS dGf[Ҹ]t ִv{ v;Һ8ǷD ,у.BP ;w =ڶq YL痟avxCHn\wlGxWTE:KkLiJӶX`Ȅ(neو'M%+PQ?S]qdּ֟wbX7wCvc)F zYl|f+_#3 ~7V6L~*Ti0tDk*~^}%U˖Rz&)37W<2eyyyjlڴѣGO۲3zh ;̷2~v}m- `79zX"v.9T&JqKQ71B 3~XiglYmW(%l1gGM-$wKwDYR%ړكyqk{/@\_nz*Aڪnjmhz˧Ŗ[w"Eԯ2<{\>oI>y;bڔfIFԊ-L8^tGlst#wbwYRb'SX轃p a~~7ec]dhbvu [Ъ.f -o7sޙMrV4){}lhFƺ5K")ZW+;g??`jCbb" %-PFiF&`JL?L_LA6TrG`7Xq(q*dCvop$ 3yH&ZfƱwY?xTBHH~fZƍpʤ1vx֬Y{^^ĂS\"˭aOPO)1zun (JP8ƃ+ R_ 5o>?eedA*x0^<L'ӻOc믱IFeTp4.2ˆ-D "C,q1:ltJyKW5?˞\?cNt:eI6q*Ǜ2bjz:g+Iޯ`SZ4M'QC#KRX[2@+s?/϶o[ |6<)~=Ib4^4dҒ-]L/7ti q]:OsSsvds@(!5xo NTu{e2rx^O.€N͞y.'F ?NXk<٠&PJc ZW )3طu 0ǫ}Mq` ?䮜A<<ʢ W6sL'Faȳ1E;ի7;'0>trRؽao#,2D;+ϱ={1?{⃁$Sdp2w g3Iu Rn.yL]5,ґ7N`ƐXCyZCWͭÊfYa¿tyS?qU||tŒ~cܷY$>_AiK`#oyWmP1y?葕s՛M,:C\5F#J۶ms8IDD(\.hN/Ct;rc瓚J*UPMJJ @ ʗ/OZZ>xٴ4<c2p8DFFٻw/111dee "..(##lF#bX(((8=߿®OMM: 8.>HHHHZxJVlٿ,88ĒSs- ʕ;ojx3ETTRJPB\.xL<(BRl6KBAUS&i\%VUB\AN~x 5@B\!!!8KLurrr¸IBjbXp:nEp8N, AAAR((Oi !j%++T⺈f36Hv5fIBnch&]\(z_l*\2B\!b,e B!J7$G!`#BMKB!Di!BnE( L&W@ pI_!GZV =BqV%[gaa#JPrssȐ#Wj%44I(&!8,]ZB!(d!Bz^WB!J7'G!B!DgZ%!twi !ԓ1BR%77Wg;ZѦlO5gBzP*ʖw!.#׷nug}M|xW~2{epCԵ>e 9\3 (Z]BypfcBDIO?6G5GiZ=c,t|giR%Hή/_$4=nP"_]F֊-y_71Ә\vyt@%nw HhמL[o].(fQ:Nnn.sS`CVql2sva7;tPTBgcL{!c'S|^8:٬ZO=߈J/-bWh,ehvO-7J[9%&] ̑QB[n$ô!߅Kq V)YUkVY+d';3D~f <}b;2ލ^?azs/))_c0Z(%YgPPQ:`0\BGM `G2yerkF{HP_0ue!`0VhAq8Sa^K(U+,;ᩬIt ~7צSV^6'WjYɑ4i JT œE 'Q{rW䆄s]T+>_Pi :)_D!V[E¿Brrr%,,쒬@( Ah1/OD W۝9,Ъa =Wexcɲ\^&-[Q&r,JXM݃u+ikFB# |eS(,,t s0cZ?_b k!:DXBCK* UUقwS6h2Nf-n##!E5hE3XB\0222.YxD齃[qo ^dþR,tj2qet`15 YBu?Z{a)l s 0sKW1[=/9L!f-iT=) z tq$i5\N _friipG f8oLxD8bGqIBϹ7'Oi &iMss ~;գmu{?؅d/vO$B (ZA?qkݞY:|'ќh }4|QLP's|c&n?[.&zN&uS_Mٵ[WSQt"FGq;^Q WʪU\(_Qx^mN)AqQ\^IQ, 8NL&>GqMs8|>@u4Mp8pWIB\^9@dZJ=!ĵK4E_7KB\ۤKNF,YQɫ%BqM#D`z/YRC!jwh-j.VLZ1nTuByt`zY,"* IDATuq+L&}9r_,,a{'/`̠hBr3ٷe5͜΂mY\sLtFQ(~B'eGiۋ_–xzf7U XDNvoJY.OzT-cCsHٿ9E;j46AQd3ΕpgJTl܀O`]Jm2rJȍ|$k~*u凌)Zˡdb.Ƒƭ>Jg`V)MdžIQ)N?oC>V9W"G\󹟔OL6^GG_chںyC:4ګG3 7ҨI$)w-Jwy.S%H?ϴZcV5 vd!b*{pe=r5#yڼy;/u¹WZAD'$Xvq.M,/[IA O­iX+QmX(oxܹjժv,gSL& P AzөX5SŘ|͇!尓ǁykҧltiVie )U`zCnnIyNϩ-}q^䋛 7Jzy+mZXaS]T 7%hH[B?g1.b5[uf἟rJvraзYQϺ 1}^|678(Jw3`8":w۩0qnb`uxHըy9o|Ȯl+Fc uq-Dl[t8mslیl~EiR9ïlg%w F|m4^^|Uɣ*]_LeYK= xڵ;ShpCܵe 9\=e*{uu7j 8;!&>İ^W xw{ráL[Fb7z wʼEϫ3Wh_Rq-#r;#^cyJഡ5F|t-vfVe>db1_;HJJbԨ0Mclڴ骬t!Ne+IM*q:]ީ?Ș-8qj5_LՌoK7΃?cرͤo4m;L݁r%gZX>]:(#,}Z6}OEAK^|ѪN Bcx];u ϟ^3neو'M+oI`<~^x7G4_0nJt3DJ|d"x4mrBTV]Zor,]^ENwqc(,je"x[%$`vn>%zkm Lwp{L:zØW| w/byu2~GO{6n~؍H`#l6[qA'mN EMφXγpwʱث81gUL|L7wc\$l?EAQTUfrO{ \%C@'ѪFb+H秳a~zy:Kk J$z;>ϸa͉%ͷU646Lن;{߼ҍI副֚iMv^L/57uo- co֫qKķб ۀ~ܣձ}myNad2vfQٞz5*fV0L8L&ڴiG6,= ;x8/;B QQ˷}L<~gyT~ mJ$#jŖO /#F9*U]x{!=Zn3hRy3X:~޼RqA˷,$[~m^[9n ÒH>S<'P%Kbf܏XZH 4)P9wUΌY􏗒qX6W`od>%uL- kW|1"Oa9c1/uPtt ^'&l4ts 1+*BuV8é\,GW.aA!=ZĴ2lpˬL2eNi󀹤]}^y˗2hZt3' ni7d7e0ogмnt4+MJ~mJ=MQBx5]Z!ٖ{F(6Af"b,l UU]=qT)`Ňs8PRM5ggp6TR|[ 2T)cŤm@\]ױUs0!!$&&RJSr_ofT(F֝5jcO?}YCPky]f{Yl. juA>v|ߚ5k7n)jرYfy-Jti qړNyibb6U3y@?a5X`!җRIqTM&"T8>iٳ=C`"-b30֫_^Ï р, ȟKvE^/aTK$gΉL&5PX&6J>'uي~EO63o|o̞;yyk Az+6>kDU1K2t<`TX½h_E{jq١RW6b14;Cl=F:eO9PB4pxNaaԳqu6x5{7Z>l J~2}w~h5ua&ܛ̾bV).t'J"CLBccSlU';pJi݈9PpNi5"A';_'""EQ~`tsݘÂ0'ExQ-Ǒ#xُ_})[b0q$V\y2Df XCnekVN#TQ*8O =Zf&٦ąpwjxbqݥRh#/=󅭸:KU^v9^V͜I*VXkIxIW&|V֕鳻tdLL 1@,9M[qDF{7ȼeAHH!!!a+F ,8NI\~"±]vBAYF +-_ѱ(PMxhNp휶SE5wخ ig]mGӡQY*YMd`\7S>cm2 be?p"˨$-=]5rIMtLY߮7Ĺur(_8{ITP/bo65"(C6*A;yUiHHZؿE{ѩםT)՞ۿ#gJv`?RFnVD:sA+نYz&:$FӨcc[?=qWbXq% S;V]jdC}#O fhFҦb.7'_6U#J^S$Opt$-ߙƹ|MXXXe]`&<w9wyXgB=Nӈ rPR:Եk@',ʫsG먒XiMP'Î0my'OcmAdY{+D5cPɾZgh [M },幻wu9MHa$oم p,X- |[jyGT:Ot4ݲ=odwh }ibm:E9)0W }S}yO~؞3 :7.]2l65N? '>Cidg&#J*#?FdUm7Sk_￞xfaq4#3?Wi\ԗ'ɠH Z#fk]/tԆG^zE`ؿ%#{0hЄڟޮ'xzF 8g>} zJzt?1 &Se|,"]^eB e;ٵ3:LV*uNϿÐOA毬[]Og\o=]00mV/{iӏqUХ,bŊ\]_θLtyr,S{#H+ }<<|1}3eqeB<c=&D=iO_[ȠKYL:9Ee#'ΫE0~|?&j^DqI[|T=sY4&#?=ӷjT<.ONlll|2'""IKKCUUTUnAժUQUGrr2݊dddH86ٻw/UT)RJӶΩ2frMv:5dRtld"44d< ))鲜[[_z:!!/GHx|>bŊ6& wB\mJ`4\AB!(v!ĵKU! 2•`0HB\ ^W B!n ~?n,l6RƗO$G!ĩ>+sEbd2aX/aYAABqp4 ]ץPΓhpv/q#/s!΍dK더/}FB(ĿDUտ H2egfYBSI/K)K{|>,B.Rƥ!BnFQBK+""'2~˿1j7 GF՜}f|TC֡VUBK{2d*T`07%X;/5.@ OA|W?~<%? _fȑct]:~,5YxUCJ^MrrUyɻB\2ү_?*VHnn.'Nk<>!{d*7a^cdNÒ8%y /lFB$&?˼{&y_Z1?"ޖS'Co^c1]x1eeen***PEUU/F > HKKj qr*L pqoSHe6<{5l0 ~Suodl9˟VgγX3y0̝͟uϱC|ًyd!o„ ?0Xr%ǎՀW_筍5uΉ\( z?Xf RwOg|n,6┏ٹ| SOy@3Ӟ4r 99EQ5O#5)߹81}r.P._TK-9Nc5;њN /hiX9cJWyIOOGUUj R}To [ؾwk!Ȉ'J9pwfÆ7xeV>{j* BtRHKK bطok׮R˜$ _OeϞZv?a49c>+}x7XCLytmc0=0Tiv̄0 3X4c_ߗn{3uyy+%W ^/˖-o/()bhAFFF6{[xvリM+7$&Fj(O- ωMZCs{S1XMƵϚX`A0ξIy=?zx ],ʈG 軔5N ܧg5l%av⧼ֆkRL^Bѳ쑲uQYYI~~>6ӲN>׾:>K#1_@d IxB\ncu=6]%;3H!tN 1MvɥB! J#B7G!7x6<!MvL!7jep\=!B\7@/ ØC`Fkkklbd%2p0L(d2 c뫪Ŷu@UUE! GˍjEu 2icb}>fχ~~4M# bt:p8ۮ-V(YUTUE4bez B h| (XV~l?1L&i`0v&)1ޅi>EQu~?6d" a61 # <|P%@ G#Á덭=ώש+B(8s7~~S~wt"}EQ Ýy}/χ<|!W>sEc;轧( x>- V'dLIENDB`labwc-tweaks-0.1.0/data/translations/000077500000000000000000000000001513773473700175475ustar00rootroot00000000000000labwc-tweaks-0.1.0/data/translations/labwc-tweaks.ts000066400000000000000000001161211513773473700225050ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Behaviour Mouse & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Remove Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ar.ts000066400000000000000000001161721513773473700231750ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance المظهر Behaviour السلوك Mouse & Touchpad الفأرة و لوح اللمس Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius أركان نصف قطرية Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add أضف Remove احذف Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ca.ts000066400000000000000000001161421513773473700231530ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Aspecte Behaviour Comportament Mouse & Touchpad Ratolí i ratolí tàctil Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Radi de cantonada Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Afegeix Remove Elimina Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_cs.ts000066400000000000000000001161211513773473700231720ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Vzhled Behaviour Chování Mouse & Touchpad Myš a touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Poloměr rohů Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Přidat Remove Odebrat Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_da.ts000066400000000000000000001161211513773473700231510ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Udseende Behaviour Adfærd Mouse & Touchpad Mus & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Hjørneradius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Tilføj Remove Fjern Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_de.qm000066400000000000000000000536541513773473700231570ustar00rootroot00000000000000Z5P*]GCnUHp<~U=&i.1͔N5D2p2>? K 93%qS2bb52߳ΞO.y/-\1T o~1$M-9551SEhZs?<o  OzXKxF\.L D+ JSnWT6<"s06t06Eg*yZbbK+O62U5mAMC>h(>$5$>=Gs= >fIV|9,c(sCYv/CFJHDN̟8$0a~= TD-8AMC4W \*rBD5.SPrPHKX_:]  //%]M^U|{0@Fu/$!4%U@~Ld2A ?NJS,:f.#C2 H2F7 AX )gT9 Mg"3 rt 6 tE C T / d @_ rd 4 lA} B 2/ E t; N2, s KB c3 pPW sY o 3n M<5 C$ X+ 4#[ 0J  )\E :t; G6 H3d "l ?dIo ɠ;s `7_ 4Gv ]3 XB jL #T' & 4%b ?B Z d<& S= ; <I5 Fr Vollbild-Lupe auf -1 setzen#For full screen magnifier set to -1 BehaviourzAnfngliche Anzahl, um die das vergrerte Bild skaliert wird:Initial number of times by which magnified image is scaled BehaviourTMaximieren statt am oberen Rand anzudocken(Maximize instead of snapping on top edge BehaviourZeigerbewegung erforderlich, um ein gekacheltes oder maximiertes Fenster zu verschiebenGMovement of cursor required for a tiled or maximized window to be moved BehaviourNieNever BehaviourNicht-PixelNonpixel BehaviourEindimensionale Zeigerbewegung erforderlich, um ein vertikal oder horizontal maximiertes Fenster zu verschiebeniOne-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved BehaviourNur an Rndern Only on edges BehaviourNur in RegionenOnly on regions BehaviourNPlatzierungsrichtlinie fr neue Fenster Placement policy for new windows Behaviour`Fenster bei Fokusierung in den Vordergrund heben"Raise window to front when focused BehaviourzErfordert Zeigerbewegung, wenn Fokus folgt Maus aktiviert ist2Requires cursor movement if followMouse is enabled BehaviourWiderstehen Sie interaktiven Bewegungen und Grennderungen eines Fensters ber Bildschirmrnder hinwegEResist interactive moves and resizes of a window across screen edges BehaviourWiderstehen Sie interaktiven Bewegungen und Grennderungen eines Fensters ber die Rnder anderer Fenster hinwegVResist interactive moves and resizes of a window across the edges of any other window BehaviourEinen kleinen Indikator ber dem Fenster beim Grenndern oder Verschieben anzeigenCShow a small indicator on top of the window when resizing or moving BehaviourOverlay anzeigen beim Andocken eines Fensters an einen Bildschirmrand8Show an overlay when snapping a window to an output edge BehaviourbGre der Eckbereiche, auf die alle 'Corner'-Mausbindungs-Kontexte angewandt werden, sowie Gre des Randbereichs, in dem die Mausgrennderung in jede Richtung angewandt wird.Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. BehaviourAndocken von Fenstern kann entsprechende Kachel-Ereignisse fr native Wayland-Anwendungen auslsenXSnapping windows can trigger corresponding tiling events for native Wayland applications BehaviourGeben Sie die Dicke der Rand-Greifbereiche zum ndern der Fenstergre anOSpecify the thickness of border grab areas for the purposes of resizing windows BehaviourSchritte fr nderungen bei jedem Aufruf von 'ZoomIn' oder 'ZoomOut'7Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Behaviour$Alt+Feststelltaste Alt+Caps LockKeyboardAlt+StrgAlt+CtrlKeyboardAlt+Umschalt Alt+ShiftKeyboardAlt+Leertaste Alt+SpaceKeyboard@Beliebige Win (whrend gedrckt)Any Win (while pressed)Keyboard2Beide Alt-Tasten zusammenBoth Alts togetherKeyboardtBeide Alt-Tasten zusammen; AltGr allein whlt dritte Ebene3Both Alts together; AltGr alone chooses third levelKeyboard4Beide Strg-Tasten zusammenBoth Ctrls togetherKeyboard:Beide Umschalttasten zusammenBoth Shifts togetherKeyboardFeststelltaste Caps LockKeyboardFeststelltaste (whrend gedrckt), Alt+Feststelltaste fr die ursprngliche FeststelltastenaktionJCaps Lock (while pressed), Alt+Caps Lock for the original Caps Lock actionKeyboardFeststelltaste fr erste Belegung; Umschalt+Feststelltaste fr zweite Belegung;Caps Lock to first layout; Shift+Caps Lock to second layoutKeyboardStrg+Linke Win fr erste Belegung; Strg+Men fr zweite Belegung9Ctrl+Left Win to first layout; Ctrl+Menu to second layoutKeyboardStrg+Umschalt Ctrl+ShiftKeyboardStrg+Leertaste Ctrl+SpaceKeyboardbVerzgerung, bevor Tastendrcke wiederholt werden$Delay before keypresses are repeatedKeyboardBeschreibung DescriptionKeyboardrNum Lock aktivieren, wenn eine neue Tastatur erkannt wird/Enable Num Lock when recognizing a new keyboardKeyboard TasteKeyKeyboardfTastenkombination zum Wechseln der Tastaturbelegung)Key combination to switch keyboard layoutKeyboardLinke AltLeft AltKeyboard8Linke Alt (whrend gedrckt)Left Alt (while pressed)Keyboard(Linke Alt+Linke StrgLeft Alt+Left CtrlKeyboard0Linke Alt+Linke UmschaltLeft Alt+Left ShiftKeyboardLinke Alt+Linke Umschalt whlt vorherige Belegung, Rechte Alt+Rechte Umschalt whlt nchste BelegungXLeft Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layoutKeyboardLinke Strg Left CtrlKeyboard|Linke Strg fr erste Belegung; Rechte Strg fr zweite Belegung6Left Ctrl to first layout; Right Ctrl to second layoutKeyboardLinke Strg+Linke Alt whlt vorherige Belegung, Rechte Strg+Rechte Alt whlt nchste BelegungVLeft Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layoutKeyboard2Linke Strg+Linke UmschaltLeft Ctrl+Left ShiftKeyboardLinke Strg+Linke Umschalt whlt vorherige Belegung, Rechte Strg+Rechte Umschalt whlt nchste BelegungZLeft Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layoutKeyboard(Linke Strg+Linke WinLeft Ctrl+Left WinKeyboardLinke Umschalt Left ShiftKeyboardLinke WinLeft WinKeyboard8Linke Win (whrend gedrckt)Left Win (while pressed)KeyboardLinke Win fr erste Belegung; Rechte Win/Men fr zweite Belegung9Left Win to first layout; Right Win/Menu to second layoutKeyboardMenMenuKeyboard^Men (whrend gedrckt), Umschalt+Men fr Men)Menu (while pressed), Shift+Menu for MenuKeyboardpRate, mit der Tastendrcke pro Sekunde wiederholt werden0Rate at which keypresses are repeated per secondKeyboardRechte Alt Right AltKeyboard:Rechte Alt (whrend gedrckt)Right Alt (while pressed)Keyboard,Rechte Alt+Rechte StrgRight Alt+Right CtrlKeyboard4Rechte Alt+Rechte UmschaltRight Alt+Right ShiftKeyboardRechte Strg Right CtrlKeyboard<Rechte Strg (whrend gedrckt)Right Ctrl (while pressed)Keyboard6Rechte Strg+Rechte UmschaltRight Ctrl+Right ShiftKeyboardRechte Umschalt Right ShiftKeyboardRechte Win Right WinKeyboard:Rechte Win (whrend gedrckt)Right Win (while pressed)Keyboard Rollen Scroll LockKeyboard6Tastenkombination auswhlenSelect key combinationKeyboardHBelegung zum Hinzufgen auswhlen...Select layout to add...Keyboard.Umschalt+FeststelltasteShift+Caps LockKeyboardWin+Leertaste Win+SpaceKeyboardberAbout MainDialog Erscheinungsbild Appearance MainDialogVerhalten Behaviour MainDialogTastaturKeyboard MainDialogMaus & TouchpadMouse & Touchpad MainDialogTouchscreen Touchscreen MainDialogAdaptivAdaptiveMouse(Schaltflchenbereich Button AreaMouseKlickfinger ClickfingerMouse<Bei externer Maus deaktivierenDisable with external mouseMouseRandEdgeMouseAktiviertEnabledMouse FlachFlatMouse KeineNoneMouseZwei Finger Two FingerMouse$links-mitte-rechtsleft-middle-rightMouse$links-rechts-mitteleft-right-middleMouse,Fehler beim Laden von Error loading QObjectFhren Sie labwc-tweaks von einem Terminal aus, um Fehlermeldungen anzuzeigen7Run labwc-tweaks from a terminal to view error messagesQObject TouchscreenInvertiertInverted Touchscreen LinksLeft Touchscreen NormalNormal Touchscreen RechtsRight TouchscreenEntwicklung Development pageAboutUmgebung Environment pageAbout<Icon-Untersttzung mit libsfdoIcon support with libsfdo pageAboutLizenzenLicenses pageAbout4Native SprachuntersttzungNative language support pageAbout,SVG-Icon-UntersttzungSVG icon support pageAboutVersionVersion pageAboutWebseiteWebsite pageAbout,XWayland-UntersttzungXWayland support pageAboutErweitertAdvancedpageAppearanceEckenradius Corner radiuspageAppearance DekorationsmodusDecoration modepageAppearanceFBei gekachelten Fenstern aktivierenEnable on tiled windowspageAppearance&Schatten aktivierenEnable shadowspageAppearanceSymbolthema Icon themepageAppearanceLabwc-Thema Labwc themepageAppearance*Maximierte DekorationMaximized decorationpageAppearance ThemaThemepageAppearanceTitelleisteTitlebarpageAppearanceFensterschattenWindow Drop ShadowspageAppearance px px pageBehaviourEckenbereich Corner range pageBehaviour Inhalte zeichnen Draw contents pageBehaviour FokusFocus pageBehaviour Fokus folgt MausFocus follows mouse pageBehaviourAbstandGap pageBehaviourGreifdickeGrab thickness pageBehaviourHheHeight pageBehaviourSchrittweite Increment pageBehaviour"Anfangsskalierung Initial scale pageBehaviourLupe Magnifier pageBehaviourNMaximieren beim Andocken an oberen Rand"Maximize when snapping to top edge pageBehaviourjAnwendungen ber gekachelten Zustand benachrichtigen #Notify applications of tiled state  pageBehaviourRichtliniePolicy pageBehaviour<In Vordergrund wenn fokussiertRaise on focus pageBehaviour$Erfordert BewegungRequires movement pageBehaviourWiderstand Resistance pageBehaviourGrennderungResize pageBehaviour*Bildschirmrand-StrkeScreen edge strength pageBehaviour Overlay anzeigen Show overlay pageBehaviourPopup anzeigen Show popup pageBehaviour>Schwellenwert zum EntmaximierenThreshold to unmaximize pageBehaviour.Schwellenwert zum LsenThreshold to unsnap pageBehaviour6Bilinearen Filter verwendenUse bilinear filter pageBehaviour BreiteWidth pageBehaviour$FensterplatzierungWindow Placement pageBehaviour Fenster-AndockenWindow Snapping pageBehaviour$Fensterrand-StrkeWindow edge strength pageBehaviour ms ms pageKeyboardHinzufgenAdd pageKeyboard*Beim Start aktivierenEnable on startup pageKeyboardAllgemeinGeneral pageKeyboard TastaturbelegungKeyboard Layout pageKeyboard Belegungswechsel Layout switch pageKeyboardNum-TasteNum lock pageKeyboardEntfernenRemove pageKeyboard(Wiederholverzgerung Repeat delay pageKeyboardWiederholrate Repeat rate pageKeyboard*BeschleunigungsprofilAcceleration profile pageMouseKlickmethode Click method pageMouseMauszeigerCursor pageMouse@Whrend der Eingabe deaktivierenDisable while typing pageMouseZieh-Sperre Drag lock pageMouse LinkshndermodusLeft handed mode pageMouse0Mittlere Taste emulierenMiddle button emulation pageMouse(Natrlicher BildlaufNatural scroll pageMouse Zeiger AllgemeinPointer General pageMouse*Zeigergeschwindigkeit Pointer speed pageMouseScrollfaktor Scroll factor pageMouseScrollmethode Scroll method pageMouse GreSize pageMouse StatusStatus pageMouse"Tippen und Ziehen Tap and drag pageMouse6Tipp-SchaltflchenzuordnungTap button map pageMouse$Tippen zum Klicken Tap to click pageMouse ThemaTheme pageMouse$Drei-Finger-ZiehenThree finger drag pageMouseTouchpadTouchpad pageMouseRotationRotationpageTouchscreenTouchscreen TouchscreenpageTouchscreenlabwc-tweaks-0.1.0/data/translations/labwc-tweaks_de.ts000066400000000000000000001216201513773473700231550ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Radius der oberen Ecken bei serverseitigen Dekoration Render drop-shadows behind windows Schlagschatten hinter Fenstern rendern Render drop-shadows behind tiled windows Schlagschatten hinter gekachelten Fenstern rendern Specify decorations for xdg-shell windows Dekorationen für xdg-shell-Fenster festlegen Server Side Decoration (SSD) Serverseitige Dekoration (SSD) Client Side Decoration (CSD) Clientseitige Dekoration (CSD) Show server side decorations on maximized windows Serverseitige Dekorationen bei maximierten Fenstern anzeigen Titlebar Titelleiste None Keine Behaviour Placement policy for new windows Platzierungsrichtlinie für neue Fenster Automatic Automatisch Cascade Kaskade Center Zentrieren Cursor Zeiger Focus is given to window under mouse cursor Fokus geht an Fenster unter dem Mauszeiger Requires cursor movement if followMouse is enabled Erfordert Zeigerbewegung, wenn Fokus folgt Maus aktiviert ist Distance between windows and output edges when using movement actions Abstand zwischen Fenstern und Bildschirmrändern bei Bewegungsaktionen Show an overlay when snapping a window to an output edge Overlay anzeigen beim Andocken eines Fensters an einen Bildschirmrand Always Immer Only on regions Nur in Regionen Only on edges Nur an Rändern Never Nie Movement of cursor required for a tiled or maximized window to be moved Zeigerbewegung erforderlich, um ein gekacheltes oder maximiertes Fenster zu verschieben Specify the thickness of border grab areas for the purposes of resizing windows Dicke der Rand-Greifbereiche zum Ändern der Fenstergröße Raise window to front when focused Fokussiertes Fenster in den Vordergrund heben Maximize instead of snapping on top edge Maximieren statt am oberen Rand anzudocken Snapping windows can trigger corresponding tiling events for native Wayland applications Andocken von Fenstern kann entsprechende Kachel-Ereignisse für native Wayland-Anwendungen auslösen Resist interactive moves and resizes of a window across screen edges Widerstand bei interaktiven Bewegungen und Größenänderungen eines Fensters über Bildschirmränder hinweg Resist interactive moves and resizes of a window across the edges of any other window Widerstand bei interaktiven Bewegungen und Größenänderungen eines Fensters über die Ränder anderer Fenster hinweg One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Eindimensionale Zeigerbewegung erforderlich, um ein vertikal oder horizontal maximiertes Fenster zu verschieben Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Anwendung zeichnet Inhalte während der Größenänderung neu. Wenn deaktiviert, wird ein umrissenes Rechteck angezeigt Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Größe der Eckbereiche, auf die alle 'Corner'-Mausbindungs-Kontexte angewandt werden, sowie Größe des Randbereichs, in dem die Mausgrößenänderung in jede Richtung angewandt wird. Show a small indicator on top of the window when resizing or moving Einen kleinen Hinweis über dem Fenster beim Größenändern oder Verschieben anzeigen Nonpixel Nicht-Pixel For full screen magnifier set to -1 Für Vollbild-Lupe auf -1 setzen Initial number of times by which magnified image is scaled Anfängliche Anzahl, um die das vergrößerte Bild skaliert wird Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Schritte für Änderungen bei jedem Aufruf von 'ZoomIn' oder 'ZoomOut' Apply a bilinear filter to the magnified image Einen bilinearen Filter auf das vergrößerte Bild anwenden Keyboard Shift+Caps Lock Umschalt+Feststelltaste Alt+Caps Lock Alt+Feststelltaste Both Shifts together Beide Umschalttasten zusammen Both Alts together Beide Alt-Tasten zusammen Both Ctrls together Beide Strg-Tasten zusammen Right Alt (while pressed) Rechte Alt (während gedrückt) Left Alt (while pressed) Linke Alt (während gedrückt) Left Win (while pressed) Linke Win (während gedrückt) Right Win (while pressed) Rechte Win (während gedrückt) Any Win (while pressed) Beliebige Win (während gedrückt) Menu (while pressed), Shift+Menu for Menu Menü (während gedrückt), Umschalt+Menü für Menü Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Feststelltaste (während gedrückt), Alt+Feststelltaste für die ursprüngliche Feststelltastenaktion Right Ctrl (while pressed) Rechte Strg (während gedrückt) Right Alt Rechte Alt Left Alt Linke Alt Caps Lock Feststelltaste Caps Lock to first layout; Shift+Caps Lock to second layout Feststelltaste für erste Belegung; Umschalt+Feststelltaste für zweite Belegung Left Win to first layout; Right Win/Menu to second layout Linke Win für erste Belegung; Rechte Win/Menü für zweite Belegung Left Ctrl to first layout; Right Ctrl to second layout Linke Strg für erste Belegung; Rechte Strg für zweite Belegung Both Alts together; AltGr alone chooses third level Beide Alt-Tasten zusammen; AltGr allein wählt dritte Ebene Ctrl+Shift Strg+Umschalt Left Ctrl+Left Shift Linke Strg+Linke Umschalt Right Ctrl+Right Shift Rechte Strg+Rechte Umschalt Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Linke Strg+Linke Umschalt wählt vorherige Belegung, Rechte Strg+Rechte Umschalt wählt nächste Belegung Alt+Ctrl Alt+Strg Left Alt+Left Ctrl Linke Alt+Linke Strg Right Alt+Right Ctrl Rechte Alt+Rechte Strg Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Linke Strg+Linke Alt wählt vorherige Belegung, Rechte Strg+Rechte Alt wählt nächste Belegung Alt+Shift Alt+Umschalt Left Alt+Left Shift Linke Alt+Linke Umschalt Right Alt+Right Shift Rechte Alt+Rechte Umschalt Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Linke Alt+Linke Umschalt wählt vorherige Belegung, Rechte Alt+Rechte Umschalt wählt nächste Belegung Menu Menü Left Win Linke Win Alt+Space Alt+Leertaste Win+Space Win+Leertaste Ctrl+Space Strg+Leertaste Right Win Rechte Win Left Shift Linke Umschalt Right Shift Rechte Umschalt Left Ctrl Linke Strg Right Ctrl Rechte Strg Scroll Lock Rollen Ctrl+Left Win to first layout; Ctrl+Menu to second layout Strg+Linke Win für erste Belegung; Strg+Menü für zweite Belegung Left Ctrl+Left Win Linke Strg+Linke Win Select layout to add... Belegung zum Hinzufügen auswählen... Rate at which keypresses are repeated per second Rate, mit der Tastendrücke pro Sekunde wiederholt werden Delay before keypresses are repeated Verzögerung, bevor Tastendrücke wiederholt werden Enable Num Lock when recognizing a new keyboard Num Lock aktivieren, wenn eine neue Tastatur erkannt wird Key combination to switch keyboard layout Tastenkombination zum Wechseln der Tastaturbelegung Key Taste Description Beschreibung Select key combination Tastenkombination auswählen MainDialog Appearance Erscheinungsbild Behaviour Verhalten Mouse & Touchpad Maus & Touchpad Keyboard Tastatur Touchscreen Touchscreen About Über Mouse Flat Flach Adaptive Adaptiv left-right-middle links-rechts-mitte left-middle-right links-mitte-rechts None Keine Button Area Schaltflächenbereich Clickfinger Klickfinger Two Finger Zwei Finger Edge Rand Enabled Aktiviert Disable with external mouse Bei externer Maus deaktivieren QObject Error loading Fehler beim Laden von Run labwc-tweaks from a terminal to view error messages Führen Sie labwc-tweaks von einem Terminal aus, um Fehlermeldungen anzuzeigen Touchscreen Normal Normal Left Links Right Rechts Inverted Invertiert pageAbout Version Version XWayland support XWayland-Unterstützung Native language support Native Sprachunterstützung SVG icon support SVG-Icon-Unterstützung Icon support with libsfdo Icon-Unterstützung mit libsfdo Website Webseite Environment Umgebung Licenses Lizenzen Development Entwicklung pageAppearance Theme Thema Labwc theme Labwc-Thema Icon theme Symbolthema Window Drop Shadows Fensterschatten Enable shadows Schatten aktivieren Enable on tiled windows Bei gekachelten Fenstern aktivieren Titlebar Titelleiste Corner radius Eckenradius Advanced Erweitert Decoration mode Dekorationsmodus Maximized decoration Maximierte Dekoration pageBehaviour Focus follows mouse Fokus folgt Maus Requires movement Erfordert Bewegung Raise on focus Anheben wenn fokussiert Gap Abstand Window Placement Fensterplatzierung Policy Richtlinie px px Focus Fokus Window Snapping Fenster-Andocken Corner range Eckenbereich Notify applications of tiled state Anwendungen über gekachelten Zustand benachrichtigen Maximize when snapping to top edge Maximieren beim Andocken an oberen Rand Show overlay Overlay anzeigen Use bilinear filter Bilinearen Filter verwenden Resistance Widerstand Screen edge strength Bildschirmrand-Stärke Window edge strength Fensterrand-Stärke Threshold to unsnap Schwellenwert zum Lösen Threshold to unmaximize Schwellenwert zum Entmaximieren Resize Größenänderung Grab thickness Greifdicke Draw contents Inhalte zeichnen Show popup Popup anzeigen Magnifier Lupe Width Breite Height Höhe Initial scale Anfangsskalierung Increment Schrittweite pageKeyboard General Allgemein Repeat rate Wiederholrate Repeat delay Wiederholverzögerung ms ms Num lock Num-Taste Enable on startup Beim Start aktivieren Keyboard Layout Tastaturbelegung Add Hinzufügen Remove Entfernen Layout switch Belegungswechsel pageMouse Natural scroll Natürlicher Bildlauf Pointer speed Zeigergeschwindigkeit Acceleration profile Beschleunigungsprofil Status Status Tap to click Tippen zum Klicken Tap button map Tipp-Schaltflächenzuordnung Cursor Mauszeiger Theme Thema Size Größe Pointer General Zeiger Allgemein Left handed mode Linkshändermodus Tap and drag Tippen und Ziehen Drag lock Zieh-Sperre Three finger drag Drei-Finger-Ziehen Middle button emulation Mittlere Taste emulieren Disable while typing Während der Eingabe deaktivieren Click method Klickmethode Scroll method Scrollmethode Scroll factor Scrollfaktor Touchpad Touchpad pageTouchscreen Touchscreen Touchscreen Rotation Drehung labwc-tweaks-0.1.0/data/translations/labwc-tweaks_el.ts000066400000000000000000001165641513773473700232000ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Αυτόματο Cascade Κλιμάκωση Center Κεντράρισμα Cursor Δρομέας Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Επιλογή της διάταξης για προσθήκη... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Εμφάνιση Behaviour Συμπεριφορά Mouse & Touchpad Ποντίκι & επιφάνεια αφής Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Σφάλμα φόρτωσης Run labwc-tweaks from a terminal to view error messages Εκτελέστε το labwc-tweaks από ένα τερματικό για να δείτε τα μηνύματα σφάλματος Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Γωνιακή ακτίνα Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Προσθήκη Remove Αφαίρεση Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Δρομέας Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_en_GB.ts000066400000000000000000001161271513773473700235450ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Appearance Behaviour Behaviour Mouse & Touchpad Mouse & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Corner radius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Add Remove Remove Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_en_IE.ts000066400000000000000000001161421513773473700235470ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Behaviour Mouse & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Remove Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_en_US.ts000066400000000000000000001161421513773473700236010ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Behaviour Mouse & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Remove Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_es.ts000066400000000000000000001162601513773473700232000ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Radio de las esquinas superiores de la decoración del lado del servidor Render drop-shadows behind windows Renderizar sombras detrás de las ventanas Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Apariencia Behaviour Comportamiento Mouse & Touchpad Ratón y panel táctil Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Radio de esquina Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Añadir Remove Quitar Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_et.ts000066400000000000000000001173061513773473700232030ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar Tiitliriba None Puudub Behaviour Placement policy for new windows Uute akende paigutuse reeglid Automatic Automaatne Cascade Kaskaadis Center Keskel Cursor Kursori juures Focus is given to window under mouse cursor Hiirekursori all olev aken saab fookuse Requires cursor movement if followMouse is enabled Kui „followMouse“ meetod on kasutusel, siis eeldab kursori liikumist Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Kui naksad aknaga ekraani või väljundi äärde, siis näita ülekatet Always Alati Only on regions Vaid alade puhul Only on edges Vaid äärte puhul Never Mitte kunagi Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Kui fookus on aknal, siis tõsta ta esiplaanile Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Shift+Suurtähtede lukustus (Caps Lock) Alt+Caps Lock Alt+Suurtähtede lukustus (Caps Lock) Both Shifts together Mõlemad Shiftid korraga Both Alts together Mõlemad Altid korraga Both Ctrls together Mõlemad Ctrlid korraga Right Alt (while pressed) Parem Alt (vajutamisel) Left Alt (while pressed) Vasak Alt (vajutamisel) Left Win (while pressed) Vasak Win (vajutamisel) Right Win (while pressed) Parem Win (vajutamisel) Any Win (while pressed) Iga Win (vajutamisel) Menu (while pressed), Shift+Menu for Menu Menüüklahv (vajutamisel), Shift+Menüüklahv menüü jaoks Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Suurtähtede lukustus (Caps Lock) (vajutamisel), Alt+Suurtähtede lukustus algse suurtähtede lukustamise jaoks Right Ctrl (while pressed) Parem Ctrl (vajutamisel) Right Alt Parem Alt Left Alt Vasak Alt Caps Lock Suurtähtede lukustus (Caps Lock) Caps Lock to first layout; Shift+Caps Lock to second layout Suurtähtede lukustus (Caps Lock) esimesele paigutusele, Shift+Suurtähtede lukustus teisele paigutusele Left Win to first layout; Right Win/Menu to second layout Vasak Win esimesele paigutusele, Parem Win/Menüüklahv teisele paigutusele Left Ctrl to first layout; Right Ctrl to second layout Vasak Ctrl esimesele paigutusele, Parem Ctrl teisele paigutusele Both Alts together; AltGr alone chooses third level Mõlemad Altid koos; AltGr üksi valib kolmanda taseme Ctrl+Shift Ctrl+Shift Left Ctrl+Left Shift Vasak Ctrl+Left Shift Right Ctrl+Right Shift Parem Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Vasak Ctrl+Vasak Shift valib eelmise paigutuse, Parem Ctrl + Parem Shift valib järgmise paigutuse Alt+Ctrl Alt+Ctrl Left Alt+Left Ctrl Vasak Alt+Vasak Ctrl Right Alt+Right Ctrl Parem Alt+Parem Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Vasak Ctrl+Vasak Alt valib eelmise paigutuse, Parem Ctrl + Parem Alt valib järgmise paigutuse Alt+Shift Alt+Shift Left Alt+Left Shift Vasak Alt+Vasak Shift Right Alt+Right Shift Parem Alt+Parem Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Vasak Alt+Vasak Shift valib eelmise paigutuse, Parem Alt + Parem Shift valib järgmise paigutuse Menu Menüü Left Win Vasak Win Alt+Space Alt+Tühik Win+Space Win+Tühik Ctrl+Space Ctrl+Tühik Right Win Parem Win Left Shift Vasak Shift Right Shift Parem Shift Left Ctrl Vasak Ctrl Right Ctrl Parem Ctrl Scroll Lock Kerimislukk (Scroll Lock) Ctrl+Left Win to first layout; Ctrl+Menu to second layout Ctrl+Vasak Win esimesele paigutusele; Ctrl+Menüü teisele paigutusele Left Ctrl+Left Win Vasak Ctrl+Vasak Win Select layout to add... Vali lisatav paigutus... Rate at which keypresses are repeated per second Klahvivajutuste kordusi sekundis Delay before keypresses are repeated Viivitus enne klahvivajutuste kordamist Enable Num Lock when recognizing a new keyboard Uue klahvistiku tuvastamisel võta numbrilukustus kasutusele Key combination to switch keyboard layout Klahvikombinatsioon klahvistiku paigutuse vahetamiseks Key Klahv Description Kirjeldus Select key combination Vali klahvikombinatsioon MainDialog Appearance Välimus Behaviour Käitumine Mouse & Touchpad Hiir ja puuteplaat Keyboard Klahvistik Touchscreen Puuteekraan About Mouse Flat Lineaarne Adaptive Kohenduv left-right-middle vasak-parem-keskmine left-middle-right vasak-keskmine-parem None Puudub Button Area Nuppude ala Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Viga laadimisel Run labwc-tweaks from a terminal to view error messages Veateadete nägemiseks käivita labwc-tweaks terminalis Touchscreen Normal Tavaline Left Vasakul Right Paremal Inverted Pööratud pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Veebisait Environment Keskkond Licenses Litsentsid Development Arendus pageAppearance Theme Kujundus Labwc theme Labwc kujundus Icon theme Ikoonistiil Window Drop Shadows Näita akende varjutust Enable shadows Kasuta varjutamist Enable on tiled windows Kasuta paanitud akendel Titlebar Tiitliriba Corner radius Nurga raadius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Näita ülekatet Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Üldist Repeat rate Korduse sagedus Repeat delay Viivitus kordamisel ms ms Num lock NumLock ehk numbrilukk Enable on startup Lülita käivitamisel sisse Keyboard Layout Klahvistiku paigutus Add Lisa Remove Eemalda Layout switch Paigutuse vahetamine pageMouse Natural scroll Loomulik kerimine Pointer speed Kursori kiirus Acceleration profile Kiirendusprofiil Status Olek Tap to click Klõpsamiseks puuduta Tap button map Cursor Kursor Theme Kujundus Size Suurus Pointer General Left handed mode Töörežiim vasaku käe jaoks Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Puuteekraan Rotation Pööramine labwc-tweaks-0.1.0/data/translations/labwc-tweaks_eu.ts000066400000000000000000001161301513773473700231760ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Itxura Behaviour Portaera Mouse & Touchpad Sagua eta Ukipen-panela Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Izkinako erradioa Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Gehitu Remove Kendu Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_fa.ts000066400000000000000000001161551513773473700231620ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance ظاهر Behaviour رفتار Mouse & Touchpad موشواره و صفحه لمسی Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius گردی گوشه Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add اضافه Remove حذف Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_fi.ts000066400000000000000000001162051513773473700231660ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Ei mitään Behaviour Placement policy for new windows Automatic Automaattinen Cascade Kaskadi Center Keskitetty Cursor Kursorin alle Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Valitse lisättävä asettelu... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Ulkoasu Behaviour Toiminta Mouse & Touchpad Hiiri & kosketuslevy Keyboard Touchscreen About Mouse Flat Lineaarinen Adaptive Mukautuva left-right-middle left-middle-right None Ei mitään Button Area Painikealue Clickfinger Vapaa Two Finger Kaksisorminen Edge Reuna Enabled Käytössä Disable with external mouse Poista käytöstä, kun ulkoinen hiiri kytketty QObject Error loading Virhe ladattaessa Run labwc-tweaks from a terminal to view error messages Suorita labwc-tweaks päätteessä nähdäksesi virheilmoitukset Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Kulman säde Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Lisää Remove Poista Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Kursorin alle Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad Kosketuslevy pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_fr.ts000066400000000000000000001162431513773473700232010ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Automatique Cascade Cascade Center Centré Cursor Curseur Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Sélection de la disposition à ajouter... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Apparence Behaviour Comportement Mouse & Touchpad Souris & Pavé tactile Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Erreur au chargement Run labwc-tweaks from a terminal to view error messages Exécutez labwc-tweaks en concole pour voir les messages d'erreur Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Rayon des coins Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Ajouter Remove Enlever Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Curseur Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_gl.ts000066400000000000000000001161411513773473700231710ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Apariencia Behaviour Comportamento Mouse & Touchpad Rato e Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Redondeado De Esquina Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Engadir Remove Eliminar Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_he.ts000066400000000000000000001161561513773473700231710ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance מראה Behaviour התנהגות Mouse & Touchpad עכבר ומשטח מגע Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius רדיוס פינות Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add הוספה Remove הסרה Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_hr.ts000066400000000000000000001222671513773473700232060ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Polumjer grafičkih elemenata na strani servera u gornjim kutovima Render drop-shadows behind windows Iscrtaj sjene iza prozora Render drop-shadows behind tiled windows Iscrtaj sjene iza popločenih prozora Specify decorations for xdg-shell windows Odredi grafičke elemente za xdg-shell prozore Server Side Decoration (SSD) Grafički elementi na strani servera (SSD) Client Side Decoration (CSD) Grafički elementi na strani klijenta (CSD) Show server side decorations on maximized windows Prikaži grafičke elemente na serverskoj strani pri maksimalno raširenim prozorima Titlebar Naslovna traka None Bez Behaviour Placement policy for new windows Politika postavljanja mjesta za nove prozore Automatic Automaski Cascade Kaskada Center Centriraj Cursor Kursor Focus is given to window under mouse cursor Fokus se daje prozoru ispod kursora miša Requires cursor movement if followMouse is enabled Potrebno je pomicanje kursora ako je „followMouse“ uključeno Distance between windows and output edges when using movement actions Udaljenost između prozora i prikazanih rubova pri korištenju radnje kretanja Show an overlay when snapping a window to an output edge Always Uvijek Only on regions Samo na regijama Only on edges Samo na rubovima Never Nikada Movement of cursor required for a tiled or maximized window to be moved Pomicanje kursora koje je potrebno za pomicanje pločastog ili maks. raširenog prozora Specify the thickness of border grab areas for the purposes of resizing windows Odredi širinu područja za hvatanje rubova u svrhu mijenjanja veličine prozora Raise window to front when focused Prikaži prozor ispred ostalih kada se fokusira Maximize instead of snapping on top edge Maks. raširi umjesto privlačenja na gornji rub Snapping windows can trigger corresponding tiling events for native Wayland applications Privlačenje prozora može pokrenuti odgovarajuće događaje popločivanja za nativne Wayland aplikacije Resist interactive moves and resizes of a window across screen edges Odupri se interaktivnim pokretima i promjenama veličine prozora za sve rubove ekrana Resist interactive moves and resizes of a window across the edges of any other window Odupri se interaktivnim pokretima i promjenama veličine prozora za sve rubove bilo kojeg prozora One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Za okomito ili vodoravno pomicanje maks. raširenog prozora potrebno je jednodimenzionalno pomicanje kursora Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Aplikacija ponovo crta sadržaj tijekom mijenjanja veličine. Ako je isključeno, prikazuje se pravokutnik s konturom Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Veličina kutnih područja na koja se primjenjuju svi konteksti miša vezani uz „Kut“ kao i veličina rubnog područja za koje će se promjena veličine mišem primjenjivati u bilo kojem smjeru. Show a small indicator on top of the window when resizing or moving Prikaži mali indikator na vrhu prozora prilikom mijenjanja veličine ili premještanja Nonpixel Ne u pikslima For full screen magnifier set to -1 Za povećalo u cjeloekranskom prikazu postavi na -1 Initial number of times by which magnified image is scaled Početni broj puta za koje se povećava povećana slika Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Koraci za promjene pri svakom pozivu opcija „ZoomIn“ ili „ZoomOut“ (smanji ili povećaj prikaz) Apply a bilinear filter to the magnified image Primijeni bilinearni filtar na povećanu sliku Keyboard Shift+Caps Lock Tipke Shift+Caps Lock Alt+Caps Lock Tipke Alt+Caps Lock Both Shifts together Obje tipke Shift zajedno Both Alts together Obje tipke Alt zajedno Both Ctrls together Obje tipke Ctrl zajedno Right Alt (while pressed) Desna tipka Alt (dok je pritisnuta) Left Alt (while pressed) Lijeva tipka Alt (dok je pritisnuta) Left Win (while pressed) Desna tipka Win (dok je pritisnuta) Right Win (while pressed) Desna tipka Win (dok je pritisnuta) Any Win (while pressed) Bilo koja tipka Win (dok je pritisnuta) Menu (while pressed), Shift+Menu for Menu Tipka menu (dok je pritisnuta), Shift+Menu za izbornik Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Caps Lock (dok je pritisnuta), Alt+Caps Lock omogućuje izvornu Caps Lock radnju Right Ctrl (while pressed) Desna tipka Ctrl (dok je pritisnuta) Right Alt Desna tipka Alt Left Alt Lijeva tipka Alt Caps Lock Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Caps Lock za prvi raspored, Shift+Caps Lock za drugi raspored Left Win to first layout; Right Win/Menu to second layout Lijeva tipka Win za prvi raspored, Desna tipka Win/Menu za drugi raspored Left Ctrl to first layout; Right Ctrl to second layout Lijeva tipka Ctrl za prvi raspored, Desna tipka Ctrl za drugi raspored Both Alts together; AltGr alone chooses third level Obje Alt-tipke zajedno; Samo AltGr bira treću razinu Ctrl+Shift Ctrl+Shift Left Ctrl+Left Shift Lijeva tipka Ctrl+Lijeva tipka Shift Right Ctrl+Right Shift Desna tipka Ctrl+Desna tipka Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Lijeva tipka Ctrl+Lijeva tipka Shift bira prethodni raspored, Desna tipka Ctrl+Desna tipka Shift bira sljedeći raspored Alt+Ctrl Alt+Ctrl Left Alt+Left Ctrl Lijeva tipka Alt+Lijeva tipka Ctrl Right Alt+Right Ctrl Desna tipka Alt+Desna tipka Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Lijeva tipka Ctrl+Lijeva tipka ALT bira prethodni raspored, Desna tipka Ctrl+Desna tipka Alt bira sljedeći raspored Alt+Shift Alt+Shift Left Alt+Left Shift Lijeva tipka Alt+Lijeva tipka Shift Right Alt+Right Shift Desna tipka Alt+Desna tipka Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Lijeva tipka Alt+Lijeva tipka Shift bira prethodni raspored, Desna tipka Alt+Desna tipka Shift bira sljedeći raspored Menu Menu Left Win Lijeva tipka Win Alt+Space Alt+Razmaknica Win+Space Win+Razmaknica Ctrl+Space Ctrl+Razmaknica Right Win Desna tipka Win Left Shift Lijeva tipka Shift Right Shift Desna tipka Shift Left Ctrl Lijeva tipka Ctrl Right Ctrl Desna tipka Ctrl Scroll Lock Zaključavanje klizača Ctrl+Left Win to first layout; Ctrl+Menu to second layout Lijeva tipka Ctrl+Lijeva tipka Win za prvi raspored, Desna tipka Ctrl+Menu tipka za drugi raspored Left Ctrl+Left Win Lijeva tipka Ctrl+Lijeva tipka Win Select layout to add... Odaberi raspored za dodavanje … Rate at which keypresses are repeated per second Brzina kojom se pritisci tipki ponavljaju u sekundi Delay before keypresses are repeated Kašnjenje prije ponavljanja pritisaka tipki Enable Num Lock when recognizing a new keyboard Uključi Num Lock prilikom prepoznavanja nove tipkovnice Key combination to switch keyboard layout Kombinacija tipki za mijenjanje rasporeda tipkovnice Key Description Select key combination MainDialog Appearance Izgled Behaviour Ponašanje Mouse & Touchpad Miš i dodirna ploča Keyboard Tipkovnica Touchscreen Ekran osjetljiv na dodir About Mouse Flat Plošno Adaptive Prilagodljivo left-right-middle lijevo-desno-sredina left-middle-right lijevo-sredina-desno None Bez Button Area Područje gumbova Clickfinger Klik prstima Two Finger Dva prsta Edge Rub Enabled Uključeno Disable with external mouse Isključi pomoću eksternog miša QObject Error loading Greška pri učitavanju Run labwc-tweaks from a terminal to view error messages Pokreni labwc-tweaks s terminala za pregled poruka grešaka Touchscreen Normal Normalno Left Lijevo Right Desno Inverted Invertirano pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Tema Labwc theme Icon theme Window Drop Shadows Sjene prozora Enable shadows Uključi sjene Enable on tiled windows Uključi pri pločastim prozorima Titlebar Naslovna traka Corner radius Polumjer kuta Advanced Napredno Decoration mode Modus grafičkih elemenata Maximized decoration Grafički elementi u maks. raširenom prozoru pageBehaviour Focus follows mouse Fokus prati miša Requires movement Zahtijeva kretanje Raise on focus Podigni pri fokusu Gap Razmak Window Placement Smještaj prozora Policy Politika px px Focus Fokus Window Snapping Privlačenje prozora Corner range Raspon kutova Notify applications of tiled state Obavijesti aplikaciju o pločastom stanju Maximize when snapping to top edge Maks. raširi pri poravnanju na gornji rub Show overlay Use bilinear filter Koristi bilinearni filtar Resistance Otpor Screen edge strength Jačina ruba ekrana Window edge strength Jačina ruba prozora Threshold to unsnap Prag za neprivlačenje Threshold to unmaximize Prag za smanjivanje Resize Promijeni veličinu Grab thickness Širina područja za hvatanje rubova Draw contents Iscrtaj sadržaj Show popup Prikaži skočni prozor Magnifier Povećalo Width Širina Height Visina Initial scale Početno uvećanje Increment Povećaj pageKeyboard General Opće Repeat rate Stopa ponavljanja Repeat delay Kašnjenje ponavljanja ms ms Num lock Num Lock Enable on startup Uključi pri pokretanju Keyboard Layout Raspored tipkovnice Add Dodaj Remove Ukloni Layout switch Prekidač rasporeda pageMouse Natural scroll Prirodno klizanje Pointer speed Brzina pokazivača Acceleration profile Profil ubrzanja Status Tap to click Dodirni za klik Tap button map Dodirni mapiranje gumba Cursor Kursor Theme Tema Size Veličina Pointer General Pokazivač općenito Left handed mode Lijevoruki način rada Tap and drag Dodirni i povuci Drag lock Zaključano povlačenje Three finger drag Povlačenje s tri prsta Middle button emulation Emulacija srednjeg gumba Disable while typing Isključi tijekom tipkanja Click method Metoda klikova Scroll method Metoda klizanja Scroll factor Faktor klizanja Touchpad Dodirna ploča pageTouchscreen Touchscreen Ekran osjetljiv na dodir Rotation Okret labwc-tweaks-0.1.0/data/translations/labwc-tweaks_hu.ts000066400000000000000000001162701513773473700232060ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Automatikus Cascade Lépcsőzetes Center Közép Cursor Mutató Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Válassz hozzáadandó elrendezést... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Megjelenés Behaviour Viselkedés Mouse & Touchpad Egér és érintőpárna Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Betöltési hiba Run labwc-tweaks from a terminal to view error messages Futtasd a labwc-tweaks parancsot a terminálból a hibaüzenetek megtekintéséhez Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Sarokkerekítés Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Hozzáadás Remove Eltávolítás Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Mutató Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_it.ts000066400000000000000000001222331513773473700232020ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Raggio degli angoli superiori della decorazione lato server Render drop-shadows behind windows Rendere le ombre dietro le finestre Render drop-shadows behind tiled windows Rendere ombre dietro lo finestre aggianciate Specify decorations for xdg-shell windows Specifica decorazione per le finestre Server Side Decoration (SSD) Decorazione lato server (SSD) Client Side Decoration (CSD) Decorazione lato client (CSD) Show server side decorations on maximized windows Mostra le decorazioni lato server nelle finestre massimizzate Titlebar Barra del titolo None Nessuno Behaviour Placement policy for new windows Politica di piazzamento per le nuove finestre Automatic Automatico Cascade A cascata Center centrato Cursor Cursore Focus is given to window under mouse cursor La finestra sotto il cursore riceve il focus Requires cursor movement if followMouse is enabled Richiede un movimento del cursore se 'segue il mouse' è abilitato Distance between windows and output edges when using movement actions Distanza tra i bordi di finestre e schermi quando si usano azioni di movimento Show an overlay when snapping a window to an output edge Mostra una sovrapposizione quando aggancia una finestra a un bordo dello schermo Always Sempre Only on regions Solo alle regioni Only on edges Solo ai bordi Never Mai Movement of cursor required for a tiled or maximized window to be moved Movimento del cursore richiesto per spostare una finestra massimizzata o aggianciata Specify the thickness of border grab areas for the purposes of resizing windows Specifica lo spessore delle aree di cattura del bordo per ridimensionare le finestre Raise window to front when focused Alza la finestra se riceve focus Maximize instead of snapping on top edge Massimizza invece di agganciare al bordo superiore Snapping windows can trigger corresponding tiling events for native Wayland applications L'aggancio delle finestre può attivare i corrispondenti eventi di affiancamento per le applicazioni Wayland native Resist interactive moves and resizes of a window across screen edges Impedisci spostamenti interattivi e ridimensionamenti di una finestra oltre i bordi dello schermo Resist interactive moves and resizes of a window across the edges of any other window Impedisci spostamenti e ridimensionamenti interattivi di una finestra oltre i bordi di qualsiasi altra finestra One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Movimento unidimensionale del cursore richiesto per spostare una finestra massimizzata verticalmente o orizzontalmente Application redraws its contents while resizing. If disabled, an outlined rectangle is shown L'applicazione ridisegna il suo contenuto durante il ridimensionamento. Se disabilitato, viene visualizzato un rettangolo contornato Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Dimensioni delle regioni angolari a cui si applicano tutti le azioni del mouse e dimensioni della regione del bordo per cui si applicherà il ridimensionamento del mouse in qualsiasi direzione. Show a small indicator on top of the window when resizing or moving Mostra un piccolo indicatore sopra la finestra durante il ridimensionamento o lo spostamento Nonpixel For full screen magnifier set to -1 Per la lente d'ingrandimento a schermo intero impostare su -1 Initial number of times by which magnified image is scaled Numero iniziale di volte per cui l'immagine ingrandita viene ingrandito Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Gradi di cambiamento per ogni azione di 'ZoomIn' o 'ZoomOut' Apply a bilinear filter to the magnified image Applica un filtro bilineare all'immagie ingrandita Keyboard Shift+Caps Lock Maiusc+Blocco Maiuscole Alt+Caps Lock Alt+Blocco Maiuscole Both Shifts together Entrambi Maiusc insieme Both Alts together Entrambi Alt insieme Both Ctrls together Entrambi Ctrl insieme Right Alt (while pressed) Alt destro (mentre premuto) Left Alt (while pressed) Alt sinistro (mentre premuto) Left Win (while pressed) Win sinistro (mentre premuto) Right Win (while pressed) Win destro (mentre premuto) Any Win (while pressed) Qualsiasi win (mentre premuto) Menu (while pressed), Shift+Menu for Menu Menu (mentre premuto), Maiusc+Menu per menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Blocco maiusc (mentre premuto), Alt+Blocco maiusc per l'originale azione Right Ctrl (while pressed) Ctrl destro (mentre premuto) Right Alt Alt destro Left Alt Alt sinistro Caps Lock Blocco maiuscole Caps Lock to first layout; Shift+Caps Lock to second layout Blocco maiuscole per il primo layout; Maiusc+Blocco maiuscole per il secondo layout Left Win to first layout; Right Win/Menu to second layout Tasto Win sinistro per il primo layout; Tasto Win/Menu destro per il secondo layout Left Ctrl to first layout; Right Ctrl to second layout Ctrl sinistro per il primo layout; Ctrl destro per il secondo layout Both Alts together; AltGr alone chooses third level Entrambi Alt insieme; AltGr da solo sceglie il terzo livello Ctrl+Shift Ctrl+Maiusc Left Ctrl+Left Shift Ctrl sinistro+Maiusc sinistro Right Ctrl+Right Shift Ctrl destro+Maiusc destro Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Ctrl sinistro+Maiusc sinistro seleziona il layout precedente, Ctrl destro+Maiusc destro seleziona il layout successivo Alt+Ctrl Alt+Ctrl Left Alt+Left Ctrl Alt sinistro+Ctrl sinistro Right Alt+Right Ctrl Alt destro+Ctrl destro Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Ctrl sinistro+Alt sinistro sceglie il layout precedente, Ctrl destro+Alt destro sceglie il layout successivo Alt+Shift Alt+Maiusc Left Alt+Left Shift Alt sinistro+Maiusc sinistro Right Alt+Right Shift Alt destro+Maiusc destro Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Alt sinistro+Maiusc sinistro sceglie il layout precedente, Alt destro+Maiusc destro sceglie il layout successivo Menu Menu Left Win Win sinistro Alt+Space Alt+spazio Win+Space Win+spazio Ctrl+Space Ctrl+spazio Right Win Win destro Left Shift Maiusc sinistro Right Shift Maiusc destro Left Ctrl Ctrl sinistro Right Ctrl Ctrl destro Scroll Lock Blocco scorrimento Ctrl+Left Win to first layout; Ctrl+Menu to second layout Ctrl+Win sinistro per il primo layout; Ctrl+Menu per il secondo layout Left Ctrl+Left Win Ctrl sinistro+Win sinistro Select layout to add... Seleziona mappatura da aggiungere... Rate at which keypresses are repeated per second Frequenza con cui le pressioni dei tasti vengono ripetute al secondo Delay before keypresses are repeated Ritardo prima che le pressioni dei tasti vengano ripetute Enable Num Lock when recognizing a new keyboard Attiva Num Lock quando viene connesso una tastiera nuova Key combination to switch keyboard layout Combinazione di tasti per cambiare la mappatura della tastiera Key Chiave Description Descrizione Select key combination Seleziona la combinazione di tasti MainDialog Appearance Aspetto Behaviour Comportamento Mouse & Touchpad Mouse e Touchpad Keyboard Tastiera Touchscreen Schermata touch About Informazioni Mouse Flat Piatto Adaptive Adattivo left-right-middle sinistro-destro-centrale left-middle-right sinistro-centrale-destro None Nessuno Button Area Area pulsanti Clickfinger Click dito Two Finger Due dita Edge Bordo Enabled Abilitato Disable with external mouse Disabilitato con mouse esterno QObject Error loading Errore caricando Run labwc-tweaks from a terminal to view error messages Esegui labwc-tweaks in un terminale per vedere i messaggi di errore Touchscreen Normal Normale Left Sinistro Right Destro Inverted Invertito pageAbout Version Versione XWayland support Supporto XWayland Native language support Supporto lingua madre SVG icon support Supporto icone SVG Icon support with libsfdo Supporto icone con libsfdo Website Sito web Environment Ambiente Licenses Lizenze Development Sviluppo pageAppearance Theme Thema Labwc theme Tema Labwc Icon theme Tema icone Window Drop Shadows Ombre delle finestre Enable shadows Abilita ombre Enable on tiled windows Abilita su finestre aggianciate Titlebar Barra del titolo Corner radius Raggio Angolo Advanced Avanzate Decoration mode Tipo decorazione Maximized decoration Decorazione massimizzata pageBehaviour Focus follows mouse Focus segue il mouse Requires movement Richiede movimento Raise on focus Alza quando riceve focus Gap Spazio riservato Window Placement Piazzamento delle finestre Policy Modo px px Focus Focus Window Snapping Aggancio delle finestre Corner range Area dell’angolo Notify applications of tiled state Notifica applicazioni dello stato affiancato Maximize when snapping to top edge Massimizza se aggancia al bordo superiore Show overlay Mostra sovrapposizione Use bilinear filter Usa filtro bilineare Resistance Resistenze Screen edge strength Resistenza al bordo dello schermo Window edge strength Resistenza al bordo della finestra Threshold to unsnap Soglia per sganciare Threshold to unmaximize Soglia per de-massimizzare Resize Ridimensionamento Grab thickness Spessore di presa Draw contents Disegna contenuto Show popup Mostra pop-up Magnifier Lente di ingrandimento Width Larghezza Height Altezza Initial scale Scala iniziale Increment Incremento pageKeyboard General Generali Repeat rate Intervallo di ripetizione Repeat delay Ritardo di ripetizione ms ms Num lock Num lock Enable on startup Abilita all'avvio Keyboard Layout Mappatura della tastiera Add Aggiungi Remove Rimuovi Layout switch Cambio mappatura pageMouse Natural scroll Scroll naturale Pointer speed Velocità puntatore Acceleration profile Profilo di accelerazione Status Stato Tap to click Tocco per click Tap button map Mappatura dei pulsanti Cursor Puntatore Theme Thema Size Dimensione Pointer General Puntatore generali Left handed mode Mancino Tap and drag Tocco e trascina Drag lock Blocco trascinamento Three finger drag Trascinamento a tre dita Middle button emulation Emulazione di pulsante centrale Disable while typing Disabilita durante la digitazione Click method Metodo di click Scroll method Metodo di scroll Scroll factor Fattore di scroll Touchpad Touchpad pageTouchscreen Touchscreen Schermata touch Rotation Rotazione labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ka.ts000066400000000000000000001162771513773473700231740ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance გარეგნობა Behaviour ქცევა Mouse & Touchpad თაგუნა და თაჩპედი Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius კუთხის რადიუსი Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add დამატება Remove წაშლა Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_kab.ts000066400000000000000000000050221513773473700233170ustar00rootroot00000000000000 MainDialog Appearance Corner radius Openbox theme Behaviour Mouse & Touchpad Drop Shadows Placement policy Cursor theme Cursor Size Natural Scroll Add Rnu Remove Kkes Language & Region Keyboard Layout labwc-tweaks-0.1.0/data/translations/labwc-tweaks_kk.ts000066400000000000000000001312361513773473700231760ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Сервер жағындағы безендірудің жоғарғы бұрыштарының радиусы Render drop-shadows behind windows Терезелердің артында көлеңкелерді бейнелеу Render drop-shadows behind tiled windows Плиткалы терезелердің артында көлеңкелерді бейнелеу Specify decorations for xdg-shell windows xdg-shell терезелері үшін безендіруді көрсету Server Side Decoration (SSD) Сервер жағындағы безендіру (SSD) Client Side Decoration (CSD) Клиент жағындағы безендіру (CSD) Show server side decorations on maximized windows Жайылған терезелерде сервер жағындағы безендіруді көрсету Titlebar Атау жолағы None Ешнәрсе Behaviour Placement policy for new windows Жаңа терезелерді орналастыру саясаты Automatic Автоматты Cascade Каскадты Center Орта бойынша Cursor Курсор Focus is given to window under mouse cursor Фокус тышқан курсорының астындағы терезеге беріледі Requires cursor movement if followMouse is enabled Егер followMouse іске қосылған болса, курсорды жылжытуды талап етеді Distance between windows and output edges when using movement actions Жылжыту әрекеттерін пайдалану кезінде терезелер мен шығыс жиектері арасындағы қашықтық Show an overlay when snapping a window to an output edge Терезені экран жиегіне жабыстырғанда көмекші қабатты көрсету Always Әрқашан Only on regions Тек аймақтарда Only on edges Тек жиектерде Never Ешқашан Movement of cursor required for a tiled or maximized window to be moved Плиткалы немесе жайылған терезені жылжыту үшін курсорды жылжыту қажет Specify the thickness of border grab areas for the purposes of resizing windows Терезелердің өлшемін өзгерту мақсатында жиектерді ұстау аймақтарының қалыңдығын көрсетіңіз Raise window to front when focused Фокус алған кезде терезені алдыңғы көрініске шығару Maximize instead of snapping on top edge Жоғарғы жиекке жабыстырудың орнына жазық қылу Snapping windows can trigger corresponding tiling events for native Wayland applications Терезелерді бекіту нативті Wayland қолданбалары үшін тиісті плиткалық оқиғаларды тудыруы мүмкін Resist interactive moves and resizes of a window across screen edges Терезені экран жиектері арқылы интерактивті жылжытуға және өлшемін өзгертуге қарсы тұру Resist interactive moves and resizes of a window across the edges of any other window Терезені кез келген басқа терезенің жиектері арқылы интерактивті жылжытуға және өлшемін өзгертуге қарсы тұру One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Вертикалды немесе горизонталды жазылған терезені жылжыту үшін курсордың бір өлшемді қозғалысы қажет Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Өлшемі өзгертілген кезде қолданба өз мазмұнын қайта сызады. Егер сөндірулі болса, сызылған тіктөртбұрыш көрсетіледі Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Барлық 'Бұрыш' тышқан байланыстары контекстері іске асырылатын бұрыштық аймақтар өлшемі, сондай-ақ тышқанмен өлшемін өзгерту кез келген бағытта іске асырылатын жиек аймағының өлшемі. Show a small indicator on top of the window when resizing or moving Өлшемін өзгерткенде немесе жылжытқанда терезенің жоғарғы жағында кішкентай индикаторды көрсету Nonpixel Пиксельдік емес For full screen magnifier set to -1 Толық экранды лупа үшін -1 мәнін орнатыңыз Initial number of times by which magnified image is scaled Үлкейтілген суреттің бастапқы масштабының саны Steps for changes on each call to 'ZoomIn' or 'ZoomOut' 'Үлкейту' немесе 'Кішірейту' әр шақырылғандағы өзгерістер қадамдары Apply a bilinear filter to the magnified image Үлкейтілген суретке билинейлі сүзгіні іске асыру Keyboard Shift+Caps Lock Shift+Caps Lock Alt+Caps Lock Alt+Caps Lock Both Shifts together Екі Shift бірге Both Alts together Екі Alt бірге Both Ctrls together Екі Ctrl бірге Right Alt (while pressed) Оң жақ Alt (басылып тұрғанда) Left Alt (while pressed) Сол жақ Alt (басылып тұрғанда) Left Win (while pressed) Сол жақ Win (басылып тұрғанда) Right Win (while pressed) Оң жақ Win (басылып тұрғанда) Any Win (while pressed) Кез келген Win (басылып тұрғанда) Menu (while pressed), Shift+Menu for Menu Мәзір (басылып тұрғанда), Мәзір үшін Shift+Мәзір Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Caps Lock (басылып тұрғанда), бастапқы Caps Lock әрекеті үшін Alt+Caps Lock Right Ctrl (while pressed) Оң жақ Ctrl (басылып тұрғанда) Right Alt Оң жақ Alt Left Alt Сол жақ Alt Caps Lock Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Caps Lock - бірінші жаймаға; Shift+Caps Lock - екінші жаймаға Left Win to first layout; Right Win/Menu to second layout Сол жақ Win - бірінші жаймаға; Оң жақ Win/Menu - екінші жаймаға Left Ctrl to first layout; Right Ctrl to second layout Сол жақ Ctrl - бірінші жаймаға; Оң жақ Ctrl - екінші жаймаға Both Alts together; AltGr alone chooses third level Екі Alt бірге; AltGr өзі үшінші деңгейді таңдайды Ctrl+Shift Ctrl+Shift Left Ctrl+Left Shift Сол жақ Ctrl+Сол жақ Shift Right Ctrl+Right Shift Оң жақ Ctrl+Оң жақ Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Сол жақ Ctrl+Сол жақ Shift алдыңғы жайманы таңдайды, Оң жақ Ctrl+Оң жақ Shift келесі жайманы таңдайды Alt+Ctrl Alt+Ctrl Left Alt+Left Ctrl Сол жақ Alt+Сол жақ Ctrl Right Alt+Right Ctrl Оң жақ Alt+Оң жақ Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Сол жақ Ctrl+Сол жақ Alt алдыңғы жайманы таңдайды, Оң жақ Ctrl+Оң жақ Alt келесі жайманы таңдайды Alt+Shift Alt+Shift Left Alt+Left Shift Сол жақ Alt+Сол жақ Shift Right Alt+Right Shift Оң жақ Alt+Оң жақ Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Сол жақ Alt+Сол жақ Shift алдыңғы жайманы таңдайды, Оң жақ Alt+Оң жақ Shift келесі жайманы таңдайды Menu Мәзір Left Win Сол жақ Win Alt+Space Alt+Бос аралық Win+Space Win+Бос аралық Ctrl+Space Ctrl+Бос аралық Right Win Оң жақ Win Left Shift Сол жақ Shift Right Shift Оң жақ Shift Left Ctrl Сол жақ Ctrl Right Ctrl Оң жақ Ctrl Scroll Lock Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Бірінші жайма үшін Ctrl+Сол жақ Win; екінші жайма үшін Ctrl+Мәзір Left Ctrl+Left Win Сол жақ Ctrl+Сол жақ Win Select layout to add... Қосу үшін жайманы таңдау... Rate at which keypresses are repeated per second Пернелердің секундтағы қайталану жылдамдығы Delay before keypresses are repeated Пернелердің қайталану алдындағы кідірісі Enable Num Lock when recognizing a new keyboard Жаңа пернетақтаны анықтағанда Num Lock-ты іске қосу Key combination to switch keyboard layout Пернетақта жаймасын ауыстыруға арналған пернелер тіркесімі Key Перне Description Сипаттамасы Select key combination Пернелер жарлығын таңдаңыз MainDialog Appearance Сыртқы түрі Behaviour Мінез-құлығы Mouse & Touchpad Тышқан және тачпад Keyboard Пернетақта Touchscreen Сенсорлы экран About Осы туралы Mouse Flat Жалпақ Adaptive Адаптивті left-right-middle сол-оң-ортаңғы left-middle-right сол-ортаңғы-оң None Ештеңе Button Area Батырма аймағы Clickfinger Шерту саусағы Two Finger Екі саусақ Edge Жиек Enabled Іске қосылған Disable with external mouse Сыртқы тышқанмен сөндіру QObject Error loading Жүктеу қатесі Run labwc-tweaks from a terminal to view error messages Қате туралы хабарларды көру үшін терминалдан labwc-tweaks іске қосыңыз Touchscreen Normal Қалыпты Left Сол жақ Right Оң жақ Inverted Терістелген pageAbout Version Нұсқасы XWayland support XWayland қолдауы Native language support Табиғи тілді қолдану SVG icon support SVG таңбашаларын қолдау Icon support with libsfdo libsfdo арқылы таңбашаларды қолдау Website Веб-сайт Environment Қоршаған орта Licenses Лицензиялар Development Әзірлеу pageAppearance Theme Тема Labwc theme Labwc темасы Icon theme Таңбашалар темасы Window Drop Shadows Терезе көлеңкелері Enable shadows Көлеңкелерді іске қосу Enable on tiled windows Плиткалы терезелерде іске қосу Titlebar Тақырып жолағы Corner radius Бұрыш радиусы Advanced Кеңейтілген Decoration mode Безендіру режимі Maximized decoration Жазық етілген безендіру pageBehaviour Focus follows mouse Фокус тышқан соңынан ереді Requires movement Қозғалысты талап етеді Raise on focus Фокус кезінде көтеру Gap Аралық Window Placement Терезені орналастыру Policy Саясат px пикс Focus Фокус Window Snapping Терезелерді жабыстыру Corner range Бұрыш ауқымы Notify applications of tiled state Қолданбаларға мозаикалық күйі туралы хабарлау Maximize when snapping to top edge Жоғарғы жиекке жабыстырғанда жазық қылу Show overlay Қосымша қабатты көрсету Use bilinear filter Билинейлі сүзгіні қолдану Resistance Қарсылық Screen edge strength Экран жиегінің күші Window edge strength Терезе жиегінің күші Threshold to unsnap Жабыстыруды ажырату шегі Threshold to unmaximize Жазық емес етудің шегі Resize Өлшемін өзгерту Grab thickness Ұстау қалыңдығы Draw contents Мазмұнын салу Show popup Қалқымалы терезені көрсету Magnifier Үлкейткіш Width Ені Height Биіктігі Initial scale Бастапқы масштаб Increment Қадам pageKeyboard General Жалпы Repeat rate Қайталау жиілігі Repeat delay Қайталау кідірісі ms мс Num lock Num lock Enable on startup Іске қосылғанда оны іске қосу Keyboard Layout Пернетақта жаймасы Add Қосу Remove Өшіру Layout switch Жайманы ауыстыру pageMouse Natural scroll Табиғи айналдыру Pointer speed Курсор жылдамдығы Acceleration profile Үдету профилі Status Күйі Tap to click Шерту үшін тию Tap button map Тию батырмаларының картасы Cursor Курсор Theme Тема Size Өлшемі Pointer General Нұсқағыш - Жалпы Left handed mode Солақай режимі Tap and drag Тию және сүйреу Drag lock Сүйреуді бұғаттау Three finger drag Үш саусақпен сүйреу Middle button emulation Ортаңғы батырма эмуляциясы Disable while typing Теру кезінде сөндіру Click method Шерту әдісі Scroll method Айналдыру әдісі Scroll factor Айналдыру коэффициенті Touchpad Тачпад pageTouchscreen Touchscreen Сенсорлы экран Rotation Бұру labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ko.ts000066400000000000000000001160261513773473700232020ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None 없음 Behaviour Placement policy for new windows Automatic 자동 Cascade Center 중심 Cursor 커서 Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always 항상 Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance 모양새 Behaviour 동작 Mouse & Touchpad 마우스 & 터치패드 Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None 없음 Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius 모서리 반경 Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add 추가하기 Remove 제거하기 Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor 커서 Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_lt.ts000066400000000000000000001161451513773473700232120ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Išvaizda Behaviour Elgsena Mouse & Touchpad Pelė ir jutiklinis kilimėlis Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Kampų spindulys Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Pridėti Remove Šalinti Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ms.ts000066400000000000000000001161271513773473700232120ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Penampilan Behaviour Kelakuan Mouse & Touchpad Tetikus & Pad Sentuh Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Jejari Bucu Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Tambah Remove Buang Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_nl.ts000066400000000000000000001162471513773473700232070ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Automatisch Cascade Trapsgewijs schikken Center Centreren Cursor Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Kies een toe te voegen indeling… Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Vormgeving Behaviour Gedrag Mouse & Touchpad Muis en touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Fout tijdens het laden van Run labwc-tweaks from a terminal to view error messages Voer labwc-tweaks uit vanuit een terminalvenster om foutmeldingen te bekijken Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Hoekstraal Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Toevoegen Remove Verwijderen Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_pa.ts000066400000000000000000001162201513773473700231650ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance ਦਿੱਖ Behaviour ਰਵੱਈਆ Mouse & Touchpad ਮਾਊਸ ਤੇ ਟੱਚਪੈਡ Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius ਕੋਨਾ ਦੇ ਵਿਆਸ Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add ਜੋੜੋ Remove ਹਟਾਓ Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_pl.ts000066400000000000000000001215721513773473700232060ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Promień górnych narożników dekoracji po stronie serwera Render drop-shadows behind windows Renderuj cienie za oknami Render drop-shadows behind tiled windows Renderuj cienie za oknami kafelkowymi Specify decorations for xdg-shell windows Określ dekoracje dla okien xdg-shell Server Side Decoration (SSD) Dekoracja po stronie serwera (SSD) Client Side Decoration (CSD) Dekoracja po stronie klienta (CSD) Show server side decorations on maximized windows Pokaż dekoracje po stronie serwera w zmaksymalizowanych oknach Titlebar Pasek tytułu None Brak Behaviour Placement policy for new windows Zasady umieszczania nowych okien Automatic Automatycznie Cascade Kaskada Center Środek Cursor Kursor Focus is given to window under mouse cursor Fokus jest przekazywany do okna pod kursorem myszy Requires cursor movement if followMouse is enabled Wymaga ruchu kursora, jeśli włączona jest opcja followMouse Distance between windows and output edges when using movement actions Odległość między oknami i krawędziami wyjściowymi podczas korzystania z akcji ruchu Show an overlay when snapping a window to an output edge Pokaż nakładkę podczas przyciągania okna do krawędzi wyjściowej Always Zawsze Only on regions Tylko w regionach Only on edges Tylko na krawędziach Never Nigdy Movement of cursor required for a tiled or maximized window to be moved Aby przesunąć kafelkowe lub zmaksymalizowane okno, wymagany jest ruch kursora Specify the thickness of border grab areas for the purposes of resizing windows Określ grubość obszarów obramowania w celu zmiany rozmiaru okien Raise window to front when focused Podnieś okno do przodu po uzyskaniu fokusu Maximize instead of snapping on top edge Maksymalizuj zamiast przypinać do górnej krawędzi Snapping windows can trigger corresponding tiling events for native Wayland applications Przyciąganie okien może wywołać odpowiednie zdarzenia kafelkowania dla natywnych aplikacji Wayland Resist interactive moves and resizes of a window across screen edges Ograniczaj interaktywne ruchy i zmiany rozmiaru okna na krawędziach ekranu Resist interactive moves and resizes of a window across the edges of any other window Zapobiegaj interaktywnym ruchom i zmianom rozmiaru okna na krawędziach dowolnego innego okna One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Jednowymiarowy ruch kursora wymagany do przesunięcia okna zmaksymalizowanego w pionie lub poziomie Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Aplikacja odświeża swoją zawartość podczas zmiany rozmiaru. Jeśli ta opcja jest wyłączona, wyświetlany jest obramowany prostokąt Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Rozmiar obszarów narożników, do których mają zastosowanie wszystkie konteksty powiązań myszy „Narożnik” a także rozmiar obszaru obramowania, do którego będzie stosowana zmiana rozmiaru myszy w dowolnym kierunku. Show a small indicator on top of the window when resizing or moving Wyświetl mały wskaźnik na górze okna podczas zmiany rozmiaru lub przesuwania Nonpixel Niepikselowy For full screen magnifier set to -1 Aby uzyskać pełny ekran, ustaw lupę na -1 Initial number of times by which magnified image is scaled Początkowa liczba krotności, o jaką powiększony obraz jest skalowany Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Kroki wprowadzania zmian przy każdym wywołaniu funkcji „ZoomIn” i „ZoomOut” Apply a bilinear filter to the magnified image Zastosuj filtr dwuliniowy do powiększonego obrazu Keyboard Shift+Caps Lock Shift+Caps Lock Alt+Caps Lock Alt+Caps Lock Both Shifts together Oba klawisze Shift razem Both Alts together Oba klawisze Alt razem Both Ctrls together Oba klawisze Ctrl razem Right Alt (while pressed) Prawy Alt (podczas wciśnięcia) Left Alt (while pressed) Lewy Alt (podczas wciśnięcia) Left Win (while pressed) Lewy Win (podczas wciśnięcia) Right Win (while pressed) Prawy Win (podczas wciśnięcia) Any Win (while pressed) Dowolny Alt (podczas wciśnięcia) Menu (while pressed), Shift+Menu for Menu Menu (podczas wciśnięcia), Shift+Menu dla menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Caps Lock (podczas wciśnięcia), Alt+Caps Lock dla pierwotnego działania Caps Lock Right Ctrl (while pressed) Prawy Ctrl (podczas wciśnięcia) Right Alt Prawy Alt Left Alt Lewy Alt Caps Lock Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Caps Lock do pierwszego układu; Shift+Caps Lock do drugiego układu Left Win to first layout; Right Win/Menu to second layout Lewy Win do pierwszego układu; prawy Win/Menu do drugiego układu Left Ctrl to first layout; Right Ctrl to second layout Lewy Ctrl do pierwszego układu; prawy Ctrl do drugiego układu Both Alts together; AltGr alone chooses third level Oba klawisze Alt razem; AltGr sam wybiera trzeci poziom Ctrl+Shift Ctrl+Shift Left Ctrl+Left Shift Lewy Ctrl+lewy Shift Right Ctrl+Right Shift Prawy Ctrl+prawy Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Lewy Ctrl+lewy Shift wybiera poprzedni układ, prawy Ctrl+prawy Shift wybiera następny układ Alt+Ctrl Alt+Ctrl Left Alt+Left Ctrl Lewy Alt+lewy Ctrl Right Alt+Right Ctrl Prawy Alt+prawy Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Lewy Ctrl+lewy Alt wybiera poprzedni układ, prawy Ctrl+prawy Alt wybiera następny układ Alt+Shift Alt+Shift Left Alt+Left Shift Lewy Alt+lewy Shift Right Alt+Right Shift Prawy Alt+prawy Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Lewy Alt+lewy Shift wybiera poprzedni układ, prawy Alt+prawy Shift wybiera następny układ Menu Menu Left Win Lewy Win Alt+Space Alt+Spacja Win+Space Win+Spacja Ctrl+Space Ctrl+Spacja Right Win Prawy Win Left Shift Lewy Shift Right Shift Prawy Shift Left Ctrl Lewy Ctrl Right Ctrl Prawy Ctrl Scroll Lock Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Ctrl+lewy Win do pierwszego układu; Ctrl+Menu do drugiego układu Left Ctrl+Left Win Lewy Ctrl+lewy Win Select layout to add... Wybierz układ, który chcesz dodać... Rate at which keypresses are repeated per second Częstotliwość, z jaką naciśnięcia klawiszy są powtarzane na sekundę Delay before keypresses are repeated Opóźnienie przed ponownym naciśnięciem klawisza Enable Num Lock when recognizing a new keyboard Włącz Num Lock podczas rozpoznawania nowej klawiatury Key combination to switch keyboard layout Kombinacja klawiszy do przełączania układu klawiatury Key Klawisz Description Opis Select key combination Wybierz kombinację klawiszy MainDialog Appearance Wygląd Behaviour Zachowanie Mouse & Touchpad Mysz i panel dotykowy Keyboard Klawiatura Touchscreen Ekran dotykowy About Informacje Mouse Flat Płaski Adaptive Adaptacyjny left-right-middle lewy-prawy-środkowy left-middle-right lewy-środkowy-prawy None Brak Button Area Obszar przycisków Clickfinger Kliknięcie palcem Two Finger Dwa palce Edge Krawędź Enabled Włączone Disable with external mouse Wyłącz za pomocą myszy zewnętrznej QObject Error loading Błąd ładowania Run labwc-tweaks from a terminal to view error messages Uruchom labwc-tweaks z terminala, aby wyświetlić komunikaty o błędach Touchscreen Normal Zwykły Left Lewy Right Prawy Inverted Odwrócony pageAbout Version Wersja XWayland support Obsługa XWayland Native language support Obsługa języka natywnego SVG icon support Obsługa ikon SVG Icon support with libsfdo Obsługa ikon z libsfdo Website Strona internetowa Environment Środowisko Licenses Licencje Development Rozwój pageAppearance Theme Motyw Labwc theme Motyw Labwc Icon theme Motyw ikon Window Drop Shadows Cienie okien Enable shadows Włącz cienie Enable on tiled windows Włącz w oknach kafelkowych Titlebar Pasek tytułu Corner radius Promień narożnika Advanced Zaawansowane Decoration mode Tryb dekoracji Maximized decoration Dekoracja zmaksymalizowana pageBehaviour Focus follows mouse Fokus podąża za myszą Requires movement Wymaga ruchu Raise on focus Podnieś przy fokusie Gap Przerwa Window Placement Rozmieszczenie okien Policy Zasady px px Focus Fokus Window Snapping Przyciąganie okien Corner range Zakres narożnka Notify applications of tiled state Powiadom aplikacje o stanie kafelkowym Maximize when snapping to top edge Maksymalizuj po przyciągnięciu do górnej krawędzi Show overlay Pokaż nakładkę Use bilinear filter Użyj filtra dwuliniowego Resistance Opór Screen edge strength Wytrzymałość krawędzi ekranu Window edge strength Wytrzymałość krawędzi okna Threshold to unsnap Próg odłączenia Threshold to unmaximize Próg demaksymalizacji Resize Zmień rozmiar Grab thickness Grubość chwytu Draw contents Rysuj zawartość Show popup Pokaż wyskakujące okienko Magnifier Lupa Width Szerokość Height Wysokość Initial scale Skala początkowa Increment Przyrost pageKeyboard General Ogólne Repeat rate Częstotliwość powtarzania Repeat delay Opóźnienie powtarzania ms ms Num lock Num Lock Enable on startup Włącz przy uruchamianiu Keyboard Layout Układ klawiatury Add Dodaj Remove Usuń Layout switch Przełącznik układu pageMouse Natural scroll Przewijanie naturalne Pointer speed Prędkość wskaźnika Acceleration profile Profil przyspieszenia Status Stan Tap to click Stuknij, aby kliknąć Tap button map Mapa przycisków stukania Cursor Kursor Theme Motyw Size Rozmiar Pointer General Wskaźnik ogólny Left handed mode Tryb leworęczny Tap and drag Stuknij i przeciągnij Drag lock Blokada przeciągania Three finger drag Przeciąganie trzema palcami Middle button emulation Emulacja środkowego przycisku Disable while typing Wyłącz podczas pisania Click method Metoda klikania Scroll method Metoda przewijania Scroll factor Współczynnik przewijania Touchpad Panel dotykowy pageTouchscreen Touchscreen Ekran dotykowy Rotation Obrót labwc-tweaks-0.1.0/data/translations/labwc-tweaks_pt.ts000066400000000000000000001162371513773473700232200ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Automático Cascade Cascata Center Centro Cursor Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Selecionar o esquema a adicionar... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Aparência Behaviour Comportamento Mouse & Touchpad Rato e Painel tátil Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Erro ao carregar Run labwc-tweaks from a terminal to view error messages Executar o labwc-tweaks a partir de um terminal para visualizar as mensagens de erro Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Raio do canto Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Adicionar Remove Remover Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_pt_BR.ts000066400000000000000000001162321513773473700235760ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Automático Cascade Cascata Center Centro Cursor Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Selecionar layout para adicionar... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Aparência Behaviour Comportamento Mouse & Touchpad Mouse & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Erro ao carregar Run labwc-tweaks from a terminal to view error messages Executar labwc-tweaks de um terminal para ver mensagens de erro Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Arrendondamento dos Cantos Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Adicionar Remove Remover Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ro.ts000066400000000000000000001161211513773473700232050ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Aspect Behaviour Mouse & Touchpad Mouse și tastatură Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Raza colțului Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Remove Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_ru.ts000066400000000000000000001162341513773473700232200ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Внешний вид Behaviour Поведение Mouse & Touchpad Мышь и сенсорная панель Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Радиус углов Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Добавить Remove Убрать Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_sk.ts000066400000000000000000001161331513773473700232050ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Vzhľad Behaviour Správanie Mouse & Touchpad Myš a touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Pridať Remove Odstrániť Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_sl.ts000066400000000000000000001161371513773473700232120ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Behaviour Mouse & Touchpad Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Remove Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_tr.ts000066400000000000000000001161411513773473700232140ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Görünüş Behaviour Davranış Mouse & Touchpad Fare ve Dokunmatik Yüzey Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Köşe Yuvarlatma Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Ekle Remove Kaldır Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_vi.ts000066400000000000000000001161271513773473700232110ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance Giao diện Behaviour Hành vi Mouse & Touchpad Chuột & Bàn di Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius Bán kính góc Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add Thêm Remove Xóa Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_zh_CN.ts000066400000000000000000001161201513773473700235650ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners Render drop-shadows behind windows Render drop-shadows behind tiled windows Specify decorations for xdg-shell windows Server Side Decoration (SSD) Client Side Decoration (CSD) Show server side decorations on maximized windows Titlebar None Behaviour Placement policy for new windows Automatic Cascade Center Cursor Focus is given to window under mouse cursor Requires cursor movement if followMouse is enabled Distance between windows and output edges when using movement actions Show an overlay when snapping a window to an output edge Always Only on regions Only on edges Never Movement of cursor required for a tiled or maximized window to be moved Specify the thickness of border grab areas for the purposes of resizing windows Raise window to front when focused Maximize instead of snapping on top edge Snapping windows can trigger corresponding tiling events for native Wayland applications Resist interactive moves and resizes of a window across screen edges Resist interactive moves and resizes of a window across the edges of any other window One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved Application redraws its contents while resizing. If disabled, an outlined rectangle is shown Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. Show a small indicator on top of the window when resizing or moving Nonpixel For full screen magnifier set to -1 Initial number of times by which magnified image is scaled Steps for changes on each call to 'ZoomIn' or 'ZoomOut' Apply a bilinear filter to the magnified image Keyboard Shift+Caps Lock Alt+Caps Lock Both Shifts together Both Alts together Both Ctrls together Right Alt (while pressed) Left Alt (while pressed) Left Win (while pressed) Right Win (while pressed) Any Win (while pressed) Menu (while pressed), Shift+Menu for Menu Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Right Ctrl (while pressed) Right Alt Left Alt Caps Lock Caps Lock to first layout; Shift+Caps Lock to second layout Left Win to first layout; Right Win/Menu to second layout Left Ctrl to first layout; Right Ctrl to second layout Both Alts together; AltGr alone chooses third level Ctrl+Shift Left Ctrl+Left Shift Right Ctrl+Right Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout Alt+Ctrl Left Alt+Left Ctrl Right Alt+Right Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout Alt+Shift Left Alt+Left Shift Right Alt+Right Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout Menu Left Win Alt+Space Win+Space Ctrl+Space Right Win Left Shift Right Shift Left Ctrl Right Ctrl Scroll Lock Ctrl+Left Win to first layout; Ctrl+Menu to second layout Left Ctrl+Left Win Select layout to add... Rate at which keypresses are repeated per second Delay before keypresses are repeated Enable Num Lock when recognizing a new keyboard Key combination to switch keyboard layout Key Description Select key combination MainDialog Appearance 外观 Behaviour 行为 Mouse & Touchpad 鼠标与触摸板 Keyboard Touchscreen About Mouse Flat Adaptive left-right-middle left-middle-right None Button Area Clickfinger Two Finger Edge Enabled Disable with external mouse QObject Error loading Run labwc-tweaks from a terminal to view error messages Touchscreen Normal Left Right Inverted pageAbout Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment Licenses Development pageAppearance Theme Labwc theme Icon theme Window Drop Shadows Enable shadows Enable on tiled windows Titlebar Corner radius 圆角半径 Advanced Decoration mode Maximized decoration pageBehaviour Focus follows mouse Requires movement Raise on focus Gap Window Placement Policy px Focus Window Snapping Corner range Notify applications of tiled state Maximize when snapping to top edge Show overlay Use bilinear filter Resistance Screen edge strength Window edge strength Threshold to unsnap Threshold to unmaximize Resize Grab thickness Draw contents Show popup Magnifier Width Height Initial scale Increment pageKeyboard General Repeat rate Repeat delay ms Num lock Enable on startup Keyboard Layout Add 添加 Remove 删除 Layout switch pageMouse Natural scroll Pointer speed Acceleration profile Status Tap to click Tap button map Cursor Theme Size Pointer General Left handed mode Tap and drag Drag lock Three finger drag Middle button emulation Disable while typing Click method Scroll method Scroll factor Touchpad pageTouchscreen Touchscreen Rotation labwc-tweaks-0.1.0/data/translations/labwc-tweaks_zh_TW.ts000066400000000000000000001175321513773473700236270ustar00rootroot00000000000000 Appearance Radius of server side decoration top corners 伺服器端邊裝飾頂端圓角半徑 Render drop-shadows behind windows 渲染視窗後方的投放陰影 Render drop-shadows behind tiled windows 渲染平鋪視窗後方的投放陰影 Specify decorations for xdg-shell windows 指定 xdg-shell 視窗的邊飾 Server Side Decoration (SSD) 伺服器端的邊飾 (SSD) Client Side Decoration (CSD) 用戶端的邊飾 (CSD) Show server side decorations on maximized windows 顯示伺服器端邊飾於最大化視窗 Titlebar 標題列 None Behaviour Placement policy for new windows 新建視窗的放置原則 Automatic 自動 Cascade 層疊 Center 中央 Cursor 游標 Focus is given to window under mouse cursor 焦點被置於滑鼠游標下的視窗 Requires cursor movement if followMouse is enabled 如果啟用跟隨滑鼠(followMouse),則需要游標移動 Distance between windows and output edges when using movement actions 當使用移動動作時,視窗和輸出邊緣之間的距離 Show an overlay when snapping a window to an output edge 當將視窗鋪放到輸出邊緣時顯示覆蓋 Always 總是 Only on regions 僅在區域 Only on edges 僅在邊緣 Never 永不 Movement of cursor required for a tiled or maximized window to be moved 用於平鋪或最大化視窗進行移動,游標移動是必須的 Specify the thickness of border grab areas for the purposes of resizing windows 用於調整視窗大小的目的 指定邊框抓取區域的厚度 Raise window to front when focused 當處於焦點時,將視窗提升至前方 Maximize instead of snapping on top edge 用最大化取代鋪放於頂端邊緣 Snapping windows can trigger corresponding tiling events for native Wayland applications 鋪放視窗可以觸發相應的平鋪事件 用於原生 Wayland 應用程式 Resist interactive moves and resizes of a window across screen edges 抗拒交互移動和調整視窗大小 跨越螢幕邊緣 Resist interactive moves and resizes of a window across the edges of any other window 抗拒交互移動和調整視窗大小 跨越任何其他視窗的邊緣 One-dimensional movement of cursor required for a vertically or horizontally maximized window to be moved 游標一維移動是必須的 用於垂直或水平最大化視窗進行移動 Application redraws its contents while resizing. If disabled, an outlined rectangle is shown 應用程式在調整大小時重繪其內容。 如果停用,則會顯示一個框線矩形 Size of corner regions to which all 'Corner' mousebinds contexts apply as well size of border region for which mouse resizing will apply in any direction. 角位區域的大小,在此全部“角位”滑鼠標綁定內文均會套用 以及邊框區域的大小,用於游標調整大小時將會套用於任何方向。 Show a small indicator on top of the window when resizing or moving 當要調整大小或移動時,在視窗頂部顯示小型指示器 Nonpixel 非像素 For full screen magnifier set to -1 用於全螢幕放大鏡設定至 -1 Initial number of times by which magnified image is scaled 放大圖像的初始縮放倍數 Steps for changes on each call to 'ZoomIn' or 'ZoomOut' 於每次叫用 'ZoomIn'(拉近放大) 或 'ZoomOut'(拉遠縮小) 時的變化步驟 Apply a bilinear filter to the magnified image 對放大圖像套用雙線性過濾器 Keyboard Shift+Caps Lock Shift+Caps Lock Alt+Caps Lock Alt+Caps Lock Both Shifts together 兩鍵 Shifts 同時 Both Alts together 兩鍵 Alts 同時 Both Ctrls together 兩鍵 Ctrls 同時 Right Alt (while pressed) 右 Alt (當按下時) Left Alt (while pressed) 左 Alt (當按下時) Left Win (while pressed) 左 Win (當按下時) Right Win (while pressed) 右 Win (當按下時) Any Win (while pressed) 任何 Win (當按下時) Menu (while pressed), Shift+Menu for Menu Menu(當按下時),Shift+Menu 用於選單 Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action Caps Lock (當按下時), Alt+Caps Lock 用於原始 Caps Lock (大寫鎖定)動作 Right Ctrl (while pressed) 右 Ctrl (當按下時) Right Alt 右 Alt Left Alt 左 Alt Caps Lock Caps Lock (大寫鎖定) Caps Lock to first layout; Shift+Caps Lock to second layout Caps Lock 至第一佈置; Shift+Caps Lock 至第二佈置 Left Win to first layout; Right Win/Menu to second layout 左 Win 至第一佈置; 右 Win/Menu 至第二佈置 Left Ctrl to first layout; Right Ctrl to second layout 左 Ctrl 至第一佈置;右 Ctrl 至第二佈置 Both Alts together; AltGr alone chooses third level 兩鍵 Alt 同時; AltGr 單獨選擇第三層級 Ctrl+Shift Ctrl+Shift Left Ctrl+Left Shift 左 Ctrl+左 Shift Right Ctrl+Right Shift 右 Ctrl+右 Shift Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout 左 Ctrl+左 Shift 選擇前一個佈置,右 Ctrl + 右 Shift 選擇下一個佈置 Alt+Ctrl Alt+Ctrl Left Alt+Left Ctrl 左 Alt+左 Ctrl Right Alt+Right Ctrl 右 Alt+右 Ctrl Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout 左 Ctrl+左 Alt 選擇前一個佈置,右 Ctrl + 右 Alt 選擇下一個佈置 Alt+Shift Alt+Shift Left Alt+Left Shift 左 Alt+左 Shift Right Alt+Right Shift 右 Alt+右 Shift Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout 左 Alt+左 Shift 選擇前一個佈置,右 Alt + 右 Shift 選擇下一個佈置 Menu Menu 選單 Left Win 左 Win Alt+Space Alt+空白 Win+Space Win+空白 Ctrl+Space Ctrl+空白 Right Win 右 Win Left Shift 左 Shift Right Shift 右 Shift Left Ctrl 左 Ctrl Right Ctrl 右 Ctrl Scroll Lock Scroll Lock (滾動鎖定鍵) Ctrl+Left Win to first layout; Ctrl+Menu to second layout Ctrl+左 Win 至第一佈置, Ctrl+Menu 至第二佈置 Left Ctrl+Left Win 左 Ctrl+左 Win Select layout to add... 選擇佈置進行添加… Rate at which keypresses are repeated per second 每秒重複按鍵的速率 Delay before keypresses are repeated 在重複按鍵前的延遲 Enable Num Lock when recognizing a new keyboard 識別新設鍵盤時啟用 Num Lock Key combination to switch keyboard layout 切換鍵盤佈置的組合鍵 Key 按鍵 Description 描述 Select key combination 選用按鍵組合 MainDialog Appearance 外觀 Behaviour 行為 Mouse & Touchpad 滑鼠及觸控板 Keyboard 鍵盤 Touchscreen 觸控螢幕 About 關於 Mouse Flat 平面 Adaptive 自適應 left-right-middle 左-右-中 left-middle-right 左-中-右 None Button Area 按鈕區域 Clickfinger 點按手指 Two Finger 兩手指 Edge 邊緣 Enabled 已經啟用 Disable with external mouse 停用外接滑鼠使用 QObject Error loading 錯誤載入 Run labwc-tweaks from a terminal to view error messages 從終端機執行 labwc-tweaks 以查看錯誤訊息 Touchscreen Normal 正常 Left Right Inverted 顛倒 pageAbout Version 版本 XWayland support XWayland 支援 Native language support 本地語文支援 SVG icon support SVG 圖示支援 Icon support with libsfdo 圖示支持使用 libsfdo Website 網站 Environment 環境 Licenses 授權 Development 開發 pageAppearance Theme 主題 Labwc theme Labwc 主題 Icon theme 圖示主題 Window Drop Shadows 視窗投放陰影 Enable shadows 啟用陰影 Enable on tiled windows 啟用於在平鋪視窗 Titlebar 標題列 Corner radius 圓角半徑 Advanced 進階 Decoration mode 裝飾模式 Maximized decoration 最大化裝飾 pageBehaviour Focus follows mouse 焦點跟隨滑鼠 Requires movement 需要移動 Raise on focus 提昇於焦點 Gap 間隙 Window Placement 視窗放置 Policy 原則 px px Focus 焦點 Window Snapping 視窗鋪放 Corner range 角端範圍 Notify applications of tiled state 通知應用程式平鋪狀態 Maximize when snapping to top edge 當鋪放至頂端邊緣時進行最大化 Show overlay 顯示覆蓋 Use bilinear filter 使用雙線性過濾器 Resistance 阻抗 Screen edge strength 螢幕邊緣強度 Window edge strength 視窗邊緣強度 Threshold to unsnap 取消鋪放的閾值 Threshold to unmaximize 取消最大化的閾值 Resize 調整大小 Grab thickness 抓取厚度 Draw contents 繪製內容 Show popup 顯示彈出視窗 Magnifier 放大鏡 Width 寬度 Height 高度 Initial scale 初始量度 Increment 增量 pageKeyboard General 通則 Repeat rate 重複率 Repeat delay 重複延遲 ms ms Num lock Num lock (數字鎖定鍵) Enable on startup 於啟動時即為啟用 Keyboard Layout 鍵盤佈置 Add 添加 Remove 移除 Layout switch 佈置切換 pageMouse Natural scroll 自然捲動 Pointer speed 滑鼠指標速度 Acceleration profile 游標加速度設定檔 Status 狀態 Tap to click 觸滑即可點按 Tap button map 觸滑按鈕測圖 Cursor 游標 Theme 主題 Size 大小 Pointer General 滑鼠指標通則 Left handed mode 左撇子模式 Tap and drag 觸滑並拖放 Drag lock 拖放鎖定 Three finger drag 三指拖放 Middle button emulation 中鍵模擬 Disable while typing 當打字輸入時停用 Click method 點按方式 Scroll method 捲動方式 Scroll factor 捲動係數 Touchpad 觸控板 pageTouchscreen Touchscreen 觸控螢幕 Rotation 旋轉 labwc-tweaks-0.1.0/data/translations/labwc_tweaks.desktop.yaml000066400000000000000000000002171513773473700245510ustar00rootroot00000000000000Desktop Entry/Name: "Labwc Tweaks" Desktop Entry/GenericName: "Compositor Settings" Desktop Entry/Comment: "Labwc Wayland compositor settings" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_ar.desktop.yaml000066400000000000000000000002561513773473700252360ustar00rootroot00000000000000Desktop Entry/Name: "تطويعات Labwc" Desktop Entry/GenericName: "تكوين الإعدادات" Desktop Entry/Comment: "تكوين إعدادات وايلاند Labwc" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_ca.desktop.yaml000066400000000000000000000002451513773473700252150ustar00rootroot00000000000000Desktop Entry/Name: "Ajustos de Labwc" Desktop Entry/GenericName: "Configuració del compositor" Desktop Entry/Comment: "Configuració del compositor Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_cs.desktop.yaml000066400000000000000000000002311513773473700252320ustar00rootroot00000000000000Desktop Entry/Name: "Vyladění Labwc" Desktop Entry/GenericName: "Nastavení kompozitoru" Desktop Entry/Comment: "Nastavení Wayland kompozitoru Labwc" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_da.desktop.yaml000066400000000000000000000002271513773473700252160ustar00rootroot00000000000000Desktop Entry/Name: "Labwc Tweaks" Desktop Entry/GenericName: "Kompositorindstillinger" Desktop Entry/Comment: "Labwc Wayland kompositorindstillinger" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_de.desktop.yaml000066400000000000000000000002401513773473700252150ustar00rootroot00000000000000Desktop Entry/Name: "Labwc-Optimierungen" Desktop Entry/GenericName: "Kompositor-Einstellungen" Desktop Entry/Comment: "Labwc Wayland-Kompositor-Einstellungen" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_el.desktop.yaml000066400000000000000000000002771513773473700252370ustar00rootroot00000000000000Desktop Entry/Name: "Τροποποιήσεις Labwc" Desktop Entry/GenericName: "Ρυθμίσεις Συνθέτη" Desktop Entry/Comment: "Ρυθμίσεις συνθέτη Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_en_US.desktop.yaml000066400000000000000000000001171513773473700256410ustar00rootroot00000000000000Desktop Entry/Name: "" Desktop Entry/GenericName: "" Desktop Entry/Comment: "" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_es.desktop.yaml000066400000000000000000000002521513773473700252370ustar00rootroot00000000000000Desktop Entry/Name: "Ajustes de Labwc" Desktop Entry/GenericName: "Configuración Del Compositor" Desktop Entry/Comment: "Configuración del compositor Wayland de Labwc" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_et.desktop.yaml000066400000000000000000000002431513773473700252400ustar00rootroot00000000000000Desktop Entry/Name: "Labwc peenhäälestus" Desktop Entry/GenericName: "Komposiitori seadistused" Desktop Entry/Comment: "Labwc Waylandi komposiitori seadistused" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_eu.desktop.yaml000066400000000000000000000002431513773473700252410ustar00rootroot00000000000000Desktop Entry/Name: "Labwc-ren Doikuntzak" Desktop Entry/GenericName: "Konpositorearen Ezarpenak" Desktop Entry/Comment: "Labwc Wayland konpositorearen ezarpenak" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_fa.desktop.yaml000066400000000000000000000002551513773473700252210ustar00rootroot00000000000000Desktop Entry/Name: "تنظیم Labwc" Desktop Entry/GenericName: "تنظیمات ترکیبنما" Desktop Entry/Comment: "تنظیمات ترکیبنمای Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_fi.desktop.yaml000066400000000000000000000002221513773473700252230ustar00rootroot00000000000000Desktop Entry/Name: "Labwc-säädöt" Desktop Entry/GenericName: "Koostimen asetukset" Desktop Entry/Comment: "Labwc Wayland-koostimen asetukset" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_fr.desktop.yaml000066400000000000000000000002431513773473700252370ustar00rootroot00000000000000Desktop Entry/Name: "Réglages de Labwc" Desktop Entry/GenericName: "Paramètres du Compositeur" Desktop Entry/Comment: "Paramètres du compositeur Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_gl.desktop.yaml000066400000000000000000000002451513773473700252340ustar00rootroot00000000000000Desktop Entry/Name: "Axustes de Labwc" Desktop Entry/GenericName: "Configuración do compositor" Desktop Entry/Comment: "Configuración do compositor Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_he.desktop.yaml000066400000000000000000000003011513773473700252170ustar00rootroot00000000000000Desktop Entry/Name: "שפצורי Labwc" Desktop Entry/GenericName: "הגדרות ניהול חלונאי" Desktop Entry/Comment: "הגדרות ניהול חלונאי של Wayland עם Labwc" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_hr.desktop.yaml000066400000000000000000000002261513773473700252420ustar00rootroot00000000000000Desktop Entry/Name: "Labwc optimiranja" Desktop Entry/GenericName: "Postavke kompositora" Desktop Entry/Comment: "Postavke Labwc Wayland kompozitora" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_hu.desktop.yaml000066400000000000000000000002421513773473700252430ustar00rootroot00000000000000Desktop Entry/Name: "Labwc Finomhangoló" Desktop Entry/GenericName: "Kompozitor beállítások" Desktop Entry/Comment: "Labwc Wayland kompozitor beállítások" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_it.desktop.yaml000066400000000000000000000003001513773473700252360ustar00rootroot00000000000000Desktop Entry/Name: "Impostazioni Labwc" Desktop Entry/GenericName: "Impostazioni del gestore finestre labwc" Desktop Entry/Comment: "Impostazioni di Labwc, gestore delle finestre in Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_ka.desktop.yaml000066400000000000000000000004021513773473700252200ustar00rootroot00000000000000Desktop Entry/Name: "Labwc-ის დეტალები" Desktop Entry/GenericName: "კომპოზიტორის მორგება" Desktop Entry/Comment: "Labwc Wayland კომპოზიტორის პარამეტრები" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_kk.desktop.yaml000066400000000000000000000003301513773473700252320ustar00rootroot00000000000000Desktop Entry/Name: "Labwc қосымша баптаулары" Desktop Entry/GenericName: "Композитор баптаулары" Desktop Entry/Comment: "Labwc Wayland композитор баптаулары" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_ko.desktop.yaml000066400000000000000000000002301513773473700252350ustar00rootroot00000000000000Desktop Entry/Name: "Labwc 트윅" Desktop Entry/GenericName: "컴포지터 설정" Desktop Entry/Comment: "Labwc Wayland 컴포지터 설정입니다" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_lt.desktop.yaml000066400000000000000000000002401513773473700252440ustar00rootroot00000000000000Desktop Entry/Name: "Labwc patobulinimai" Desktop Entry/GenericName: "Tvarkytojo nustatymai" Desktop Entry/Comment: "Labwc „Wayland“ tvarkytojo nustatymai" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_ms.desktop.yaml000066400000000000000000000002121513773473700252430ustar00rootroot00000000000000Desktop Entry/Name: "Pulasan Labwc" Desktop Entry/GenericName: "Aturan Penggubah" Desktop Entry/Comment: "Aturan Penggubah Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_nl.desktop.yaml000066400000000000000000000002271513773473700252430ustar00rootroot00000000000000Desktop Entry/Name: "Labwc-afstellingen" Desktop Entry/GenericName: "Vensterbeheerderinstellingen" Desktop Entry/Comment: "Labwc Wayland-instellingen" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_pl.desktop.yaml000066400000000000000000000002331513773473700252420ustar00rootroot00000000000000Desktop Entry/Name: "Usprawnienia Labwc" Desktop Entry/GenericName: "Ustawienia kompozytora" Desktop Entry/Comment: "Ustawienia kompozytora Wayland Labwc" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_pt.desktop.yaml000066400000000000000000000002361513773473700252550ustar00rootroot00000000000000Desktop Entry/Name: "Ajustes Labwc" Desktop Entry/GenericName: "Definições do Compositor" Desktop Entry/Comment: "Definições do compositor Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_pt_BR.desktop.yaml000066400000000000000000000002471513773473700256420ustar00rootroot00000000000000Desktop Entry/Name: "Configurações do Labwc" Desktop Entry/GenericName: "Configurações do Compositor" Desktop Entry/Comment: "Configurações do Compositor Labwc" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_ru.desktop.yaml000066400000000000000000000002731513773473700252610ustar00rootroot00000000000000Desktop Entry/Name: "Labwc Tweaks" Desktop Entry/GenericName: "Настройки композитора" Desktop Entry/Comment: "Настройки композитора Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_vi.desktop.yaml000066400000000000000000000002511513773473700252450ustar00rootroot00000000000000Desktop Entry/Name: "Tùy chỉnh Labwc" Desktop Entry/GenericName: "Cài đặt bộ tổng hợp" Desktop Entry/Comment: "Cài đặt bổ tổng hợp Labwc Wayland" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_zh_CN.desktop.yaml000066400000000000000000000002151513773473700256300ustar00rootroot00000000000000Desktop Entry/Name: "labwc 配置调整" Desktop Entry/GenericName: "混成器设置" Desktop Entry/Comment: "Labwc Wayland 混成器设置" labwc-tweaks-0.1.0/data/translations/labwc_tweaks_zh_TW.desktop.yaml000066400000000000000000000002071513773473700256630ustar00rootroot00000000000000Desktop Entry/Name: "Labwc 調控" Desktop Entry/GenericName: "合成器設定" Desktop Entry/Comment: "Labwc Wayland 合成器設定" labwc-tweaks-0.1.0/src/000077500000000000000000000000001513773473700147045ustar00rootroot00000000000000labwc-tweaks-0.1.0/src/.clang-format000066400000000000000000000020271513773473700172600ustar00rootroot00000000000000BasedOnStyle: WebKit Standard: c++20 ColumnLimit: 100 CommentPragmas: "^!|^:|^ SPDX-License-Identifier:" PointerBindsToType: false SpaceAfterTemplateKeyword: false BreakBeforeBinaryOperators: NonAssignment BreakBeforeBraces: Custom BraceWrapping: AfterClass: true AfterControlStatement: false AfterEnum: false AfterFunction: true AfterNamespace: false AfterObjCDeclaration: false AfterStruct: true AfterUnion: false BeforeCatch: false BeforeElse: false IndentBraces: false ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 4 ContinuationIndentWidth: 8 NamespaceIndentation: None IndentPPDirectives: AfterHash PPIndentWidth: 2 AlignAfterOpenBracket: true AlwaysBreakTemplateDeclarations: true AllowShortFunctionsOnASingleLine: Inline SortIncludes: false ForEachMacros: [ foreach, Q_FOREACH, forever, Q_FOREVER ] BreakConstructorInitializers: BeforeColon FixNamespaceComments: true ShortNamespaceLines: 1 AlignEscapedNewlines: Left SpaceBeforeCpp11BracedList: false labwc-tweaks-0.1.0/src/.editorconfig000066400000000000000000000003361513773473700173630ustar00rootroot00000000000000root = true [*.{cpp,h}] end_of_line = lf insert_final_newline = true charset = utf-8 trim_trailing_whitespace = true indent_style = space indent_size = 4 max_line_length = 100 [*.ui] indent_style = space indent_size = 1 labwc-tweaks-0.1.0/src/about.cpp000066400000000000000000000052251513773473700165260ustar00rootroot00000000000000#include "about.h" #include #include #include #include #include "./ui_about.h" About::About(QWidget *parent) : QWidget(parent), ui(new Ui::pageAbout) { ui->setupUi(this); } About::~About() { delete ui; } void About::loadInfo() { QString version = QString::fromUtf8(qgetenv("LABWC_VER")); if (version.isEmpty()) version = "Unknown"; ui->versionValue->setText(version); // Features QString pid = QString::fromUtf8(qgetenv("LABWC_PID")); QString exePath = QString("/proc/%1/exe").arg(pid); QProcess proc; proc.start(exePath, {"-v"}); proc.waitForFinished(); // Fallback if (exePath.isEmpty() || !QFile::exists(exePath)) { proc.start("labwc", {"-v"}); proc.waitForFinished(); } QString out = proc.readAllStandardOutput().trimmed(); if (out.isEmpty()) out = proc.readAllStandardError().trimmed(); ui->xwaylandValue->setText(out.contains("+xwayland") ? "✔" : "✘"); ui->nlsValue->setText(out.contains("+nls") ? "✔" : "✘"); ui->rsvgValue->setText(out.contains("+rsvg") ? "✔" : "✘"); ui->libsfdoValue->setText(out.contains("+libsfdo") ? "✔" : "✘"); QString labwcLink = QStringLiteral("labwc.github.io"); ui->labwcLinkValue->setText(labwcLink); ui->labwcLinkValue->setTextInteractionFlags(Qt::TextBrowserInteraction); ui->labwcLinkValue->setOpenExternalLinks(true); QString labwcTweaksVersion = QStringLiteral("0.1.0"); ui->labwcTweaksVersionValue->setText(labwcTweaksVersion); QString labwcTweaksLink = QStringLiteral("github.com/labwc/labwc-tweaks"); ui->labwcTweaksLinkValue->setText(labwcTweaksLink); ui->labwcTweaksLinkValue->setTextInteractionFlags(Qt::TextBrowserInteraction); ui->labwcTweaksLinkValue->setOpenExternalLinks(true); } void About::getEnv() { QString desktop = QString::fromUtf8(qgetenv("XDG_CURRENT_DESKTOP")); if (desktop.isEmpty()) desktop = "Unknown"; ui->desktopValue->setText(desktop); QString pid = QString::fromUtf8(qgetenv("LABWC_PID")); if (pid.isEmpty()) pid = "Unknown"; ui->pidValue->setText(pid); QString confdir = QString::fromUtf8(qgetenv("LABWC_CONFIG_DIR")); confdir.replace(QDir::homePath(), "~"); if (confdir.isEmpty()) confdir = "~/.config/labwc/"; ui->configdirValue->setText(confdir); QString display = QString::fromUtf8(qgetenv("WAYLAND_DISPLAY")); if (display.isEmpty()) display = "Unknown"; ui->displayValue->setText(display); } void About::onApply() { // No-op } labwc-tweaks-0.1.0/src/about.h000066400000000000000000000005271513773473700161730ustar00rootroot00000000000000#ifndef ABOUT_H #define ABOUT_H #include QT_BEGIN_NAMESPACE namespace Ui { class pageAbout; } QT_END_NAMESPACE class About : public QWidget { Q_OBJECT public: About(QWidget *parent = nullptr); ~About(); void onApply(); void loadInfo(); void getEnv(); private: Ui::pageAbout *ui; }; #endif // ABOUT_H labwc-tweaks-0.1.0/src/about.ui000066400000000000000000000165401513773473700163630ustar00rootroot00000000000000 pageAbout QFrame::Shape::NoFrame true 9 Labwc Version XWayland support Native language support SVG icon support Icon support with libsfdo Website Environment XDG_CURRENT_DESKTOP Labwc PID LABWC_CONFIG_DIR Wayland display Labwc Tweaks Version Licenses GPL-2.0-only; BSD-3-Clause Development Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/appearance.cpp000066400000000000000000000104031513773473700175050ustar00rootroot00000000000000#include "appearance.h" #include "find-themes.h" #include "macros.h" #include "settings.h" #include "pair.h" #include "./ui_appearance.h" Appearance::Appearance(QWidget *parent) : QWidget(parent), ui(new Ui::pageAppearance) { ui->setupUi(this); } Appearance::~Appearance() { delete ui; } void Appearance::activate() { /* Labwc Theme */ settingsAddXmlStr("/labwc_config/theme/name", ""); QStringList labwcThemes = findLabwcThemes(); ui->openboxTheme->addItems(labwcThemes); ui->openboxTheme->setCurrentIndex(labwcThemes.indexOf(getStr("/labwc_config/theme/name"))); /* Corner Radius */ settingsAddXmlInt("/labwc_config/theme/cornerRadius", 8); ui->cornerRadius->setValue(getInt("/labwc_config/theme/cornerRadius")); ui->cornerRadius->setToolTip(tr("Radius of server side decoration top corners")); /* Drop Shadows */ settingsAddXmlBoo("/labwc_config/theme/dropShadows", false); ui->dropShadows->setChecked(getBool("/labwc_config/theme/dropShadows")); ui->dropShadows->setToolTip(tr("Render drop-shadows behind windows")); /* Drop Shadows On Tiled */ settingsAddXmlBoo("/labwc_config/theme/dropShadowsOnTiled", false); ui->dropShadowsOnTiled->setChecked(getBool("/labwc_config/theme/dropShadowsOnTiled")); ui->dropShadowsOnTiled->setToolTip(tr("Render drop-shadows behind tiled windows")); // Disable it when Drop Shadows is unchecked ui->dropShadowsOnTiled->setEnabled(ui->dropShadows->isChecked()); connect(ui->dropShadows, &QCheckBox::toggled, ui->dropShadowsOnTiled, &QWidget::setEnabled); /* Icon Theme */ settingsAddXmlStr("/labwc_config/theme/icon", ""); QStringList themes = findIconThemes(LAB_ICON_THEME_TYPE_ICON); ui->iconTheme->addItems(themes); ui->iconTheme->setCurrentIndex(themes.indexOf(getStr("/labwc_config/theme/icon"))); /* Decoration */ settingsAddXmlStr("/labwc_config/core/decoration", "server"); ui->decoration->setToolTip(tr("Specify decorations for xdg-shell windows")); QVector> decorations; decorations.append( QSharedPointer(new Pair("server", tr("Server Side Decoration (SSD)")))); decorations.append( QSharedPointer(new Pair("client", tr("Client Side Decoration (CSD)")))); QString current_decoration = getStr("/labwc_config/core/decoration"); int decoration_index = -1; foreach (auto decoration, decorations) { ui->decoration->addItem(decoration.get()->description(), QVariant(decoration.get()->value())); ++decoration_index; if (current_decoration == decoration.get()->value()) { ui->decoration->setCurrentIndex(decoration_index); } } /* Maximized Decoration */ settingsAddXmlStr("/labwc_config/theme/maximizedDecoration", "titlebar"); ui->maximizedDecoration->setToolTip(tr("Show server side decorations on maximized windows")); QVector> maximized_decorations; maximized_decorations.append(QSharedPointer(new Pair("titlebar", tr("Titlebar")))); maximized_decorations.append(QSharedPointer(new Pair("none", tr("None")))); QString current_maximized_decoration = getStr("/labwc_config/theme/maximizedDecoration"); int maximized_decoration_index = -1; foreach (auto maximized_decoration, maximized_decorations) { ui->maximizedDecoration->addItem(maximized_decoration.get()->description(), QVariant(maximized_decoration.get()->value())); ++maximized_decoration_index; if (current_maximized_decoration == maximized_decoration.get()->value()) { ui->maximizedDecoration->setCurrentIndex(maximized_decoration_index); } } } void Appearance::onApply() { setInt("/labwc_config/theme/cornerRadius", ui->cornerRadius->value()); setStr("/labwc_config/theme/name", TEXT(ui->openboxTheme)); setBool("/labwc_config/theme/dropShadows", ui->dropShadows->isChecked()); setBool("/labwc_config/theme/dropShadowsOnTiled", ui->dropShadowsOnTiled->isChecked()); setStr("/labwc_config/theme/icon", TEXT(ui->iconTheme)); setStr("/labwc_config/core/decoration", DATA(ui->decoration)); setStr("/labwc_config/theme/maximizedDecoration", DATA(ui->maximizedDecoration)); } labwc-tweaks-0.1.0/src/appearance.h000066400000000000000000000005541513773473700171600ustar00rootroot00000000000000#ifndef APPEARANCE_H #define APPEARANCE_H #include QT_BEGIN_NAMESPACE namespace Ui { class pageAppearance; } QT_END_NAMESPACE class Appearance : public QWidget { Q_OBJECT public: Appearance(QWidget *parent = nullptr); ~Appearance(); void activate(); void onApply(); private: Ui::pageAppearance *ui; }; #endif // APPEARANCE_H labwc-tweaks-0.1.0/src/appearance.ui000066400000000000000000000140441513773473700173450ustar00rootroot00000000000000 pageAppearance QFrame::Shape::NoFrame true 9 Theme 16 8 Labwc theme Qt::Orientation::Horizontal Icon theme Window Drop Shadows 16 8 Enable shadows Enable on tiled windows Qt::Orientation::Horizontal Titlebar 16 8 Corner radius 24 Qt::Orientation::Horizontal Maximized decoration Advanced 16 8 Decoration mode Qt::Orientation::Horizontal Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/behaviour.cpp000066400000000000000000000255271513773473700174070ustar00rootroot00000000000000#include "behaviour.h" #include #include "find-themes.h" #include "macros.h" #include "pair.h" #include "settings.h" #include "./ui_behaviour.h" Behaviour::Behaviour(QWidget *parent) : QWidget(parent), ui(new Ui::pageBehaviour) { ui->setupUi(this); } Behaviour::~Behaviour() { delete ui; } void Behaviour::activate() { /* Placement Policy */ settingsAddXmlStr("/labwc_config/placement/policy", "cascade"); ui->placementPolicy->setToolTip(tr("Placement policy for new windows")); QVector> policies; policies.append(QSharedPointer(new Pair("automatic", tr("Automatic")))); policies.append(QSharedPointer(new Pair("cascade", tr("Cascade")))); policies.append(QSharedPointer(new Pair("center", tr("Center")))); policies.append(QSharedPointer(new Pair("cursor", tr("Cursor")))); QString current = getStr("/labwc_config/placement/policy"); int index = -1; foreach (auto policy, policies) { ui->placementPolicy->addItem(policy.get()->description(), QVariant(policy.get()->value())); ++index; if (current == policy.get()->value()) { ui->placementPolicy->setCurrentIndex(index); } } /* Focus Follow Mouse */ settingsAddXmlBoo("/labwc_config/focus/followMouse", false); ui->followMouse->setChecked(getBool("/labwc_config/focus/followMouse")); ui->followMouse->setToolTip(tr("Focus is given to window under mouse cursor")); /* Focus Requires Movement */ settingsAddXmlBoo("/labwc_config/focus/followMouseRequiresMovement", false); ui->followMouseRequiresMovement->setChecked( getBool("/labwc_config/focus/followMouseRequiresMovement")); ui->followMouseRequiresMovement->setToolTip( tr("Requires cursor movement if followMouse is enabled")); ui->followMouseRequiresMovement->setEnabled(ui->followMouse->isChecked()); connect(ui->followMouse, &QCheckBox::toggled, ui->followMouseRequiresMovement, &QWidget::setEnabled); /* Raise on Focus */ settingsAddXmlBoo("/labwc_config/focus/raiseOnFocus", false); ui->raiseOnFocus->setChecked(getBool("/labwc_config/focus/raiseOnFocus")); ui->raiseOnFocus->setToolTip(tr("Raise window to front when focused")); ui->raiseOnFocus->setEnabled(ui->followMouse->isChecked()); connect(ui->followMouse, &QCheckBox::toggled, ui->raiseOnFocus, &QWidget::setEnabled); /* Gap (Core) */ settingsAddXmlInt("/labwc_config/core/gap", 0); ui->gap->setValue(getInt("/labwc_config/core/gap")); ui->gap->setToolTip( tr("Distance between windows and output edges when using movement actions")); /* Snapping Corner Range */ settingsAddXmlInt("/labwc_config/snapping/cornerRange", 50); ui->snapCornerRange->setValue(getInt("/labwc_config/snapping/cornerRange")); ui->snapCornerRange->setToolTip(tr("")); /* Show Overlay */ settingsAddXmlBoo("/labwc_config/snapping/overlay/enabled", true); ui->showOverlay->setChecked(getBool("/labwc_config/snapping/overlay/enabled")); ui->showOverlay->setToolTip(tr("Show an overlay when snapping a window to an output edge")); /* Maximize On Top */ settingsAddXmlBoo("/labwc_config/snapping/topMaximize", true); ui->topMaximize->setChecked(getBool("/labwc_config/snapping/topMaximize")); ui->topMaximize->setToolTip(tr("Maximize instead of snapping on top edge")); /* Notify Clients */ settingsAddXmlStr("/labwc_config/snapping/notifyClient", "always"); ui->notifyClients->setToolTip(tr("Snapping windows can trigger corresponding\ntiling events " "for native Wayland applications")); QVector> notifyclients; notifyclients.append(QSharedPointer(new Pair("always", tr("Always")))); notifyclients.append(QSharedPointer(new Pair("region", tr("Only on regions")))); notifyclients.append(QSharedPointer(new Pair("edge", tr("Only on edges")))); notifyclients.append(QSharedPointer(new Pair("never", tr("Never")))); QString current_notifyclientvalue = getStr("/labwc_config/snapping/notifyClient"); int notifyclientvalue_index = -1; foreach (auto notifyclientvalue, notifyclients) { ui->notifyClients->addItem(notifyclientvalue.get()->description(), QVariant(notifyclientvalue.get()->value())); ++notifyclientvalue_index; if (current_notifyclientvalue == notifyclientvalue.get()->value()) { ui->notifyClients->setCurrentIndex(notifyclientvalue_index); } } // clang-format off /* Resistance: Screen Edge Strength */ settingsAddXmlInt("/labwc_config/resistance/screenEdgeStrength", 20); ui->screenEdgeStrength->setValue(getInt("/labwc_config/resistance/screenEdgeStrength")); ui->screenEdgeStrength->setToolTip(tr("Resist interactive moves and resizes of a window\n across screen edges")); /* Window Edge Strength */ settingsAddXmlInt("/labwc_config/resistance/windowEdgeStrength", 20); ui->windowEdgeStrength->setValue(getInt("/labwc_config/resistance/windowEdgeStrength")); ui->windowEdgeStrength->setToolTip(tr("Resist interactive moves and resizes of a window\n across the edges of any other window")); /* resistance UnSnap Treshold */ settingsAddXmlInt("/labwc_config/resistance/unSnapTreshold", 20); ui->unSnapTreshold->setValue(getInt("/labwc_config/resistance/unSnapTreshold")); ui->unSnapTreshold->setToolTip(tr("Movement of cursor required for a tiled or maximized window to be moved")); /* resistance UnMaximizeTreshold */ settingsAddXmlInt("/labwc_config/resistance/unMaximizeTreshold", 150); ui->unMaximizeTreshold->setValue(getInt("/labwc_config/resistance/unMaximizeTreshold")); ui->unMaximizeTreshold->setToolTip(tr("One-dimensional movement of cursor required for\na vertically or horizontally maximized window to be moved")); /* Resize: drawContents */ settingsAddXmlBoo("/labwc_config/resize/drawContents", true); ui->drawContents->setChecked(getBool("/labwc_config/resize/drawContents")); ui->drawContents->setToolTip(tr("Application redraws its contents while resizing.\nIf " "disabled, an outlined rectangle is shown")); /* Resize: Corner Range */ settingsAddXmlInt("/labwc_config/resize/cornerRange", 8); ui->resizeCornerRange->setValue(getInt("/labwc_config/resize/cornerRange")); ui->resizeCornerRange->setToolTip( tr("Size of corner regions to which all 'Corner' mousebinds contexts apply\n as well " "size of border region for which mouse resizing will apply in any direction.")); /* Resize: Minimum Area */ settingsAddXmlInt("/labwc_config/resize/minimumArea", 8); ui->resizeMinimumArea->setValue(getInt("/labwc_config/resize/minimumArea")); ui->resizeMinimumArea->setToolTip(tr("Specify the thickness of border grab areas for the\n" "purposes of resizing windows")); // clang-format on /* Show Popup */ settingsAddXmlStr("/labwc_config/resize/popupShow", "never"); ui->popupShow->setToolTip( tr("Show a small indicator on top of the window when resizing or moving")); QVector> resizeShowPopup; resizeShowPopup.append(QSharedPointer(new Pair("never", tr("Never")))); resizeShowPopup.append(QSharedPointer(new Pair("always", tr("Always")))); resizeShowPopup.append(QSharedPointer(new Pair("nonpixel", tr("Nonpixel")))); QString current_popupValue = getStr("/labwc_config/resize/popupShow"); int popupValue_index = -1; foreach (auto popupValue, resizeShowPopup) { ui->popupShow->addItem(popupValue.get()->description(), QVariant(popupValue.get()->value())); ++popupValue_index; if (current_popupValue == popupValue.get()->value()) { ui->popupShow->setCurrentIndex(popupValue_index); } } /* Magnifier */ settingsAddXmlInt("/labwc_config/magnifier/width", 400); ui->magnifierWidth->setValue(getInt("/labwc_config/magnifier/width")); ui->magnifierWidth->setToolTip(tr("For full screen magnifier set to -1")); settingsAddXmlInt("/labwc_config/magnifier/height", 400); ui->magnifierHeight->setValue(getInt("/labwc_config/magnifier/height")); ui->magnifierHeight->setToolTip(tr("For full screen magnifier set to -1")); settingsAddXmlFlt("/labwc_config/magnifier/initScale", 2.0f); ui->initScale->setValue(getFloat("/labwc_config/magnifier/initScale")); ui->initScale->setToolTip(tr("Initial number of times by which magnified image is scaled")); settingsAddXmlFlt("/labwc_config/magnifier/increment", 0.2f); ui->increment->setValue(getFloat("/labwc_config/magnifier/increment")); ui->increment->setToolTip(tr("Steps for changes on each call to 'ZoomIn' or 'ZoomOut'")); settingsAddXmlBoo("/labwc_config/magnifier/useFilter", true); ui->useFilter->setChecked(getBool("/labwc_config/magnifier/useFilter")); ui->useFilter->setToolTip(tr("Apply a bilinear filter to the magnified image")); } void Behaviour::onApply() { setStr("/labwc_config/placement/policy", DATA(ui->placementPolicy)); setBool("/labwc_config/focus/followMouse", ui->followMouse->isChecked()); setBool("/labwc_config/focus/followMouseRequiresMovement", ui->followMouseRequiresMovement->isChecked()); setBool("/labwc_config/focus/raiseOnFocus", ui->raiseOnFocus->isChecked()); setInt("/labwc_config/core/gap", ui->gap->value()); setInt("/labwc_config/snapping/cornerRange", ui->snapCornerRange->value()); setBool("/labwc_config/snapping/overlay/enabled", ui->showOverlay->isChecked()); setBool("/labwc_config/snapping/topMaximize", ui->topMaximize->isChecked()); setStr("/labwc_config/snapping/notifyClient", DATA(ui->notifyClients)); setInt("/labwc_config/resistance/screenEdgeStrength", ui->screenEdgeStrength->value()); setInt("/labwc_config/resistance/windowEdgeStrength", ui->windowEdgeStrength->value()); setInt("/labwc_config/resistance/unSnapTreshold", ui->unSnapTreshold->value()); setInt("/labwc_config/resistance/unMaximizeTreshold", ui->unMaximizeTreshold->value()); setBool("/labwc_config/resize/drawContents", ui->drawContents->isChecked()); setInt("/labwc_config/resize/cornerRange", ui->resizeCornerRange->value()); setInt("/labwc_config/resize/minimumArea", ui->resizeMinimumArea->value()); setStr("/labwc_config/resize/popupShow", DATA(ui->popupShow)); setInt("/labwc_config/magnifier/width", ui->magnifierWidth->value()); setInt("/labwc_config/magnifier/height", ui->magnifierHeight->value()); setFloat("/labwc_config/magnifier/initScale", ui->initScale->value()); setFloat("/labwc_config/magnifier/increment", ui->increment->value()); setBool("/labwc_config/magnifier/useFilter", ui->useFilter->isChecked()); } labwc-tweaks-0.1.0/src/behaviour.h000066400000000000000000000005441513773473700170440ustar00rootroot00000000000000#ifndef BEHAVIOUR_H #define BEHAVIOUR_H #include QT_BEGIN_NAMESPACE namespace Ui { class pageBehaviour; } QT_END_NAMESPACE class Behaviour : public QWidget { Q_OBJECT public: Behaviour(QWidget *parent = nullptr); ~Behaviour(); void activate(); void onApply(); private: Ui::pageBehaviour *ui; }; #endif // BEHAVIOUR_H labwc-tweaks-0.1.0/src/behaviour.ui000066400000000000000000000402141513773473700172300ustar00rootroot00000000000000 pageBehaviour QFrame::Shape::NoFrame true 9 Window Placement 16 8 Policy Qt::Orientation::Horizontal 40 20 Gap px 80 Qt::Orientation::Horizontal 40 20 Focus 16 8 Focus follows mouse Qt::Orientation::Horizontal Qt::Orientation::Horizontal 8 1 Requires movement Qt::Orientation::Horizontal 8 1 Raise on focus Window Snapping 16 8 Corner range px Qt::Orientation::Horizontal Notify applications of tiled state Maximize when snapping to top edge Show overlay Resistance 16 8 Screen edge strength px -99 Qt::Orientation::Horizontal Window edge strength px -99 Threshold to unsnap px Threshold to unmaximize px 600 10 Resize 16 8 Corner range px Qt::Orientation::Horizontal Grab thickness px Show popup Draw contents Magnifier 16 8 Width px -1 2000 50 Qt::Orientation::Horizontal Height px -1 2000 50 Initial scale 1 8.000000000000000 0.100000000000000 Increment 1.000000000000000 0.100000000000000 Use bilinear filter Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/environment.cpp000066400000000000000000000057071513773473700177650ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-only #define _POSIX_C_SOURCE 200809L #include #include #include #include #include #include #include #include #include #include "log.h" class Line { public: Line(); ~Line(); QString data; bool isKeyValuePair; QString key; QString value; }; static std::vector> lines; static std::string _filename; Line::Line(void) { isKeyValuePair = false; } Line::~Line(void) { }; QString environmentGet(QString key) { for (auto &line : lines) { if (!line->isKeyValuePair) continue; if (line->key == key) return line->value; } return nullptr; } int environmentGetInt(QString key) { for (auto &line : lines) { if (!line->isKeyValuePair) { continue; } if (line->key == key) { bool success = false; int ret = line->value.toInt(&success); return success ? ret : -1; } } return -1; } void environmentSet(QString key, QString value) { if (key.isEmpty() || value.isEmpty()) { return; } for (auto &line : lines) { if (!line->isKeyValuePair) { continue; } if (line->key == key) { // Modify existing key=value pair line->value = value; return; } } // Append lines.push_back(std::make_unique()); lines.back()->isKeyValuePair = true; lines.back()->key = key; lines.back()->value = value; } void environmentSetInt(QString key, int value) { char buffer[255]; snprintf(buffer, 255, "%d", value); environmentSet(key, QString(buffer)); } static void processLine(QString line) { lines.push_back(std::make_unique()); lines.back()->data = line; if (line.isEmpty() || line.startsWith("#") || !line.contains("=")) { return; } lines.back()->isKeyValuePair = true; QStringList elements = line.split('='); lines.back()->key = elements[0].trimmed(); lines.back()->value = elements[1].trimmed(); } void environmentInit(std::string filename) { // Store filename in this translation unit so that environmentSave() uses the same one with no // additional effort from the caller. _filename = filename; if (access(filename.c_str(), F_OK)) { info("environment file not found '{}'", filename); return; } std::string line; std::ifstream stream(filename); while (getline(stream, line)) { processLine(QString(line.c_str())); } stream.close(); } void environmentSave(void) { std::ofstream ofs(_filename); for (auto &line : lines) { if (!line->isKeyValuePair) { ofs << line->data.toStdString() << std::endl; } else { ofs << line->key.toStdString() << "=" << line->value.toStdString() << std::endl; } } ofs.close(); } labwc-tweaks-0.1.0/src/environment.h000066400000000000000000000005721513773473700174250ustar00rootroot00000000000000/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef ENVIRONMENT_H #define ENVIRONMENT_H #include QString environmentGet(QString key); int environmentGetInt(QString key); void environmentSet(QString key, QString value); void environmentSetInt(QString key, int value); void environmentInit(std::string filename); void environmentSave(void); #endif /* ENVIRONMENT_H */ labwc-tweaks-0.1.0/src/evdev-lst-layouts.h000066400000000000000000000670431513773473700204760ustar00rootroot00000000000000#pragma once #include #include // Auto-generated based on "/usr/share/X11/xkb/rules/evdev.lst" struct layout { QString code; QString description; }; static std::vector evdev_lst_layouts = { { "custom", "A user-defined custom Layout" }, { "ru(ab)", "Abkhazian (Russia)" }, { "gh(akan)", "Akan" }, { "al", "Albanian" }, { "al(plisi)", "Albanian (Plisi)" }, { "al(veqilharxhi)", "Albanian (Veqilharxhi)" }, { "et", "Amharic" }, { "ara", "Arabic" }, { "ara(azerty)", "Arabic (AZERTY)" }, { "ara(azerty_digits)", "Arabic (AZERTY, Eastern Arabic numerals)" }, { "dz(ar)", "Arabic (Algeria)" }, { "ara(buckwalter)", "Arabic (Buckwalter)" }, { "ara(digits)", "Arabic (Eastern Arabic numerals)" }, { "eg", "Arabic (Egypt)" }, { "iq", "Arabic (Iraq)" }, { "ara(mac)", "Arabic (Macintosh)" }, { "ara(mac-phonetic)", "Arabic (Macintosh, phonetic)" }, { "ma", "Arabic (Morocco)" }, { "ara(olpc)", "Arabic (OLPC)" }, { "pk(ara)", "Arabic (Pakistan)" }, { "sy", "Arabic (Syria)" }, { "am", "Armenian" }, { "am(eastern-alt)", "Armenian (alt. eastern)" }, { "am(phonetic-alt)", "Armenian (alt. phonetic)" }, { "am(eastern)", "Armenian (eastern)" }, { "am(phonetic)", "Armenian (phonetic)" }, { "am(western)", "Armenian (western)" }, { "in(asm-kagapa)", "Assamese (KaGaPa, phonetic)" }, { "es(ast)", "Asturian (Spain, with bottom-dot H and L)" }, { "gh(avn)", "Avatime" }, { "az", "Azerbaijani" }, { "az(cyrillic)", "Azerbaijani (Cyrillic)" }, { "ir(azb)", "Azerbaijani (Iran)" }, { "ml", "Bambara" }, { "bd", "Bangla" }, { "in(ben)", "Bangla (India)" }, { "in(ben_inscript)", "Bangla (India, Baishakhi InScript)" }, { "in(ben_baishakhi)", "Bangla (India, Baishakhi)" }, { "in(ben_bornona)", "Bangla (India, Bornona)" }, { "in(ben_gitanjali)", "Bangla (India, Gitanjali)" }, { "in(ben-kagapa)", "Bangla (India, KaGaPa, phonetic)" }, { "in(ben_probhat)", "Bangla (India, Probhat)" }, { "bd(probhat)", "Bangla (Probhat)" }, { "ru(bak)", "Bashkirian" }, { "by", "Belarusian" }, { "by(latin)", "Belarusian (Latin)" }, { "by(intl)", "Belarusian (intl.)" }, { "by(legacy)", "Belarusian (legacy)" }, { "by(phonetic)", "Belarusian (phonetic)" }, { "be", "Belgian" }, { "be(iso-alternate)", "Belgian (ISO, alt.)" }, { "be(oss_latin9)", "Belgian (Latin-9 only, alt.)" }, { "be(wang)", "Belgian (Wang 724 AZERTY)" }, { "be(oss)", "Belgian (alt.)" }, { "be(nodeadkeys)", "Belgian (no dead keys)" }, { "dz", "Berber (Algeria, Latin)" }, { "dz(ber)", "Berber (Algeria, Tifinagh)" }, { "ma(tifinagh-alt)", "Berber (Morocco, Tifinagh alt.)" }, { "ma(tifinagh-extended-phonetic)", "Berber (Morocco, Tifinagh extended phonetic)" }, { "ma(tifinagh-extended)", "Berber (Morocco, Tifinagh extended)" }, { "ma(tifinagh-phonetic)", "Berber (Morocco, Tifinagh phonetic)" }, { "ma(tifinagh-alt-phonetic)", "Berber (Morocco, Tifinagh phonetic, alt.)" }, { "ma(tifinagh)", "Berber (Morocco, Tifinagh)" }, { "ba", "Bosnian" }, { "ba(us)", "Bosnian (US)" }, { "ba(unicodeus)", "Bosnian (US, with Bosnian digraphs)" }, { "ba(unicode)", "Bosnian (with Bosnian digraphs)" }, { "ba(alternatequotes)", "Bosnian (with guillemets)" }, { "brai", "Braille" }, { "brai(left_hand)", "Braille (one-handed, left)" }, { "brai(left_hand_invert)", "Braille (one-handed, left, inverted thumb)" }, { "brai(right_hand)", "Braille (one-handed, right)" }, { "brai(right_hand_invert)", "Braille (one-handed, right, inverted thumb)" }, { "fr(bre)", "Breton (France)" }, { "bg", "Bulgarian" }, { "bg(bekl)", "Bulgarian (enhanced)" }, { "bg(bas_phonetic)", "Bulgarian (new phonetic)" }, { "bg(phonetic)", "Bulgarian (traditional phonetic)" }, { "mm", "Burmese" }, { "mm(zawgyi)", "Burmese (Zawgyi)" }, { "cm(azerty)", "Cameroon (AZERTY, intl.)" }, { "cm(dvorak)", "Cameroon (Dvorak, intl.)" }, { "cm(qwerty)", "Cameroon Multilingual (QWERTY, intl.)" }, { "ca(multix)", "Canadian (CSA)" }, { "es(cat)", "Catalan (Spain, with middle-dot L)" }, { "us(chr)", "Cherokee" }, { "cn", "Chinese" }, { "ru(cv)", "Chuvash" }, { "ru(cv_latin)", "Chuvash (Latin)" }, { "ie(CloGaelach)", "CloGaelach" }, { "ua(crh_alt)", "Crimean Tatar (Turkish Alt-Q)" }, { "ua(crh_f)", "Crimean Tatar (Turkish F)" }, { "ua(crh)", "Crimean Tatar (Turkish Q)" }, { "hr", "Croatian" }, { "hr(us)", "Croatian (US)" }, { "hr(unicodeus)", "Croatian (US, with Croatian digraphs)" }, { "hr(unicode)", "Croatian (with Croatian digraphs)" }, { "hr(alternatequotes)", "Croatian (with guillemets)" }, { "cz", "Czech" }, { "cz(qwerty)", "Czech (QWERTY)" }, { "cz(qwerty-mac)", "Czech (QWERTY, Macintosh)" }, { "cz(winkeys-qwerty)", "Czech (QWERTY, Windows)" }, { "cz(qwerty_bksl)", "Czech (QWERTY, extra backslash)" }, { "cz(winkeys)", "Czech (QWERTZ, Windows)" }, { "cz(ucw)", "Czech (UCW, only accented letters)" }, { "cz(dvorak-ucw)", "Czech (US, Dvorak, UCW support)" }, { "cz(bksl)", "Czech (extra backslash)" }, { "dk", "Danish" }, { "dk(dvorak)", "Danish (Dvorak)" }, { "dk(mac)", "Danish (Macintosh)" }, { "dk(mac_nodeadkeys)", "Danish (Macintosh, no dead keys)" }, { "dk(winkeys)", "Danish (Windows)" }, { "dk(nodeadkeys)", "Danish (no dead keys)" }, { "af", "Dari" }, { "af(fa-olpc)", "Dari (Afghanistan, OLPC)" }, { "mv", "Dhivehi" }, { "nl", "Dutch" }, { "nl(mac)", "Dutch (Macintosh)" }, { "nl(us)", "Dutch (US)" }, { "nl(std)", "Dutch (standard)" }, { "bt", "Dzongkha" }, { "au", "English (Australia)" }, { "cm", "English (Cameroon)" }, { "ca(eng)", "English (Canada)" }, { "us(colemak)", "English (Colemak)" }, { "us(colemak_dh_iso)", "English (Colemak-DH ISO)" }, { "us(colemak_dh_ortho)", "English (Colemak-DH Ortholinear)" }, { "us(colemak_dh_wide_iso)", "English (Colemak-DH Wide ISO)" }, { "us(colemak_dh_wide)", "English (Colemak-DH Wide)" }, { "us(colemak_dh)", "English (Colemak-DH)" }, { "us(dvorak)", "English (Dvorak)" }, { "us(dvorak-mac)", "English (Dvorak, Macintosh, ANSI)" }, { "us(dvorak-mac-iso)", "English (Dvorak, Macintosh, ISO)" }, { "us(dvorak-alt-intl)", "English (Dvorak, alt. intl.)" }, { "us(dvorak-intl)", "English (Dvorak, intl., with dead keys)" }, { "us(dvorak-l)", "English (Dvorak, one-handed, left)" }, { "us(dvorak-r)", "English (Dvorak, one-handed, right)" }, { "gh", "English (Ghana)" }, { "gh(gillbt)", "English (Ghana, GILLBT)" }, { "gh(generic)", "English (Ghana, multilingual)" }, { "in(eng)", "English (India, with rupee)" }, { "us(mac)", "English (Macintosh, ABC, ANSI)" }, { "us(mac-iso)", "English (Macintosh, ABC, ISO)" }, { "ml(us-mac)", "English (Mali, US, Macintosh)" }, { "ml(us-intl)", "English (Mali, US, intl.)" }, { "nz", "English (New Zealand)" }, { "ng", "English (Nigeria)" }, { "us(norman)", "English (Norman)" }, { "za", "English (South Africa)" }, { "gb", "English (UK)" }, { "gb(colemak)", "English (UK, Colemak)" }, { "gb(colemak_dh)", "English (UK, Colemak-DH)" }, { "gb(dvorak)", "English (UK, Dvorak)" }, { "gb(dvorakukp)", "English (UK, Dvorak, with UK punctuation)" }, { "gb(mac)", "English (UK, Macintosh)" }, { "gb(mac_intl)", "English (UK, Macintosh, intl.)" }, { "gb(extd)", "English (UK, extended, Windows)" }, { "gb(intl)", "English (UK, intl., with dead keys)" }, { "us", "English (US)" }, { "us(symbolic)", "English (US, Symbolic)" }, { "us(alt-intl)", "English (US, alt. intl.)" }, { "us(euro)", "English (US, euro on 5)" }, { "us(intl)", "English (US, intl., with dead keys)" }, { "us(workman)", "English (Workman)" }, { "us(workman-intl)", "English (Workman, intl., with dead keys)" }, { "us(dvorak-classic)", "English (classic Dvorak)" }, { "us(altgr-intl)", "English (intl., with AltGr dead keys)" }, { "us(dvp)", "English (programmer Dvorak)" }, { "us(olpc2)", "English (the divide/multiply toggle the layout)" }, { "epo", "Esperanto" }, { "br(nativo-epo)", "Esperanto (Brazil, Nativo)" }, { "pt(nativo-epo)", "Esperanto (Portugal, Nativo)" }, { "epo(legacy)", "Esperanto (legacy)" }, { "ee", "Estonian" }, { "ee(dvorak)", "Estonian (Dvorak)" }, { "ee(us)", "Estonian (US)" }, { "ee(nodeadkeys)", "Estonian (no dead keys)" }, { "gh(ewe)", "Ewe" }, { "fo", "Faroese" }, { "fo(nodeadkeys)", "Faroese (no dead keys)" }, { "ph", "Filipino" }, { "ph(capewell-dvorak-bay)", "Filipino (Capewell-Dvorak, Baybayin)" }, { "ph(capewell-dvorak)", "Filipino (Capewell-Dvorak, Latin)" }, { "ph(capewell-qwerf2k6-bay)", "Filipino (Capewell-QWERF 2006, Baybayin)" }, { "ph(capewell-qwerf2k6)", "Filipino (Capewell-QWERF 2006, Latin)" }, { "ph(colemak-bay)", "Filipino (Colemak, Baybayin)" }, { "ph(colemak)", "Filipino (Colemak, Latin)" }, { "ph(dvorak-bay)", "Filipino (Dvorak, Baybayin)" }, { "ph(dvorak)", "Filipino (Dvorak, Latin)" }, { "ph(qwerty-bay)", "Filipino (QWERTY, Baybayin)" }, { "fi", "Finnish" }, { "fi(mac)", "Finnish (Macintosh)" }, { "fi(winkeys)", "Finnish (Windows)" }, { "fi(classic)", "Finnish (classic)" }, { "fi(nodeadkeys)", "Finnish (classic, no dead keys)" }, { "fr", "French" }, { "fr(azerty)", "French (AZERTY)" }, { "fr(afnor)", "French (AZERTY, AFNOR)" }, { "fr(bepo)", "French (BEPO)" }, { "fr(bepo_afnor)", "French (BEPO, AFNOR)" }, { "fr(bepo_latin9)", "French (BEPO, Latin-9 only)" }, { "cm(french)", "French (Cameroon)" }, { "ca", "French (Canada)" }, { "ca(fr-dvorak)", "French (Canada, Dvorak)" }, { "ca(fr-legacy)", "French (Canada, legacy)" }, { "cd", "French (Democratic Republic of the Congo)" }, { "fr(dvorak)", "French (Dvorak)" }, { "fr(ergol)", "French (Ergo‑L)" }, { "fr(ergol_iso)", "French (Ergo‑L, ISO variant)" }, { "fr(mac)", "French (Macintosh)" }, { "ml(fr-oss)", "French (Mali, alt.)" }, { "ma(french)", "French (Morocco)" }, { "ch(fr)", "French (Switzerland)" }, { "ch(fr_mac)", "French (Switzerland, Macintosh)" }, { "ch(fr_nodeadkeys)", "French (Switzerland, no dead keys)" }, { "tg", "French (Togo)" }, { "fr(us)", "French (US)" }, { "fr(oss)", "French (alt.)" }, { "fr(oss_latin9)", "French (alt., Latin-9 only)" }, { "fr(oss_nodeadkeys)", "French (alt., no dead keys)" }, { "fr(latin9)", "French (legacy, alt.)" }, { "fr(latin9_nodeadkeys)", "French (legacy, alt., no dead keys)" }, { "fr(nodeadkeys)", "French (no dead keys)" }, { "it(fur)", "Friulian (Italy)" }, { "gh(fula)", "Fula" }, { "gh(ga)", "Ga" }, { "md(gag)", "Gagauz (Moldova)" }, { "ge", "Georgian" }, { "fr(geo)", "Georgian (France, AZERTY Tskapo)" }, { "it(geo)", "Georgian (Italy)" }, { "ge(mess)", "Georgian (MESS)" }, { "ge(ergonomic)", "Georgian (ergonomic)" }, { "de", "German" }, { "at", "German (Austria)" }, { "at(mac)", "German (Austria, Macintosh)" }, { "at(nodeadkeys)", "German (Austria, no dead keys)" }, { "de(dvorak)", "German (Dvorak)" }, { "de(e1)", "German (E1)" }, { "de(e2)", "German (E2)" }, { "de(mac)", "German (Macintosh)" }, { "de(mac_nodeadkeys)", "German (Macintosh, no dead keys)" }, { "de(neo)", "German (Neo 2)" }, { "de(qwerty)", "German (QWERTY)" }, { "ch", "German (Switzerland)" }, { "ch(de_mac)", "German (Switzerland, Macintosh)" }, { "ch(legacy)", "German (Switzerland, legacy)" }, { "ch(de_nodeadkeys)", "German (Switzerland, no dead keys)" }, { "de(T3)", "German (T3)" }, { "de(us)", "German (US)" }, { "de(deadacute)", "German (dead acute)" }, { "de(deadgraveacute)", "German (dead grave acute)" }, { "de(deadtilde)", "German (dead tilde)" }, { "de(nodeadkeys)", "German (no dead keys)" }, { "gr", "Greek" }, { "gr(nodeadkeys)", "Greek (no dead keys)" }, { "gr(polytonic)", "Greek (polytonic)" }, { "gr(simple)", "Greek (simple)" }, { "in(guj)", "Gujarati" }, { "in(guj-kagapa)", "Gujarati (KaGaPa, phonetic)" }, { "cn(altgr-pinyin)", "Hanyu Pinyin Letters (with AltGr dead keys)" }, { "gh(hausa)", "Hausa (Ghana)" }, { "ng(hausa)", "Hausa (Nigeria)" }, { "us(haw)", "Hawaiian" }, { "il", "Hebrew" }, { "il(biblical)", "Hebrew (Biblical, Tiro)" }, { "il(si2)", "Hebrew (SI-1452-2)" }, { "il(lyx)", "Hebrew (lyx)" }, { "il(phonetic)", "Hebrew (phonetic)" }, { "in(bolnagri)", "Hindi (Bolnagri)" }, { "in(hin-kagapa)", "Hindi (KaGaPa, phonetic)" }, { "in(hin-wx)", "Hindi (Wx)" }, { "hu", "Hungarian" }, { "hu(qwerty)", "Hungarian (QWERTY)" }, { "hu(101_qwerty_comma_dead)", "Hungarian (QWERTY, 101-key, comma, dead keys)" }, { "hu(101_qwerty_comma_nodead)", "Hungarian (QWERTY, 101-key, comma, no dead keys)" }, { "hu(101_qwerty_dot_dead)", "Hungarian (QWERTY, 101-key, dot, dead keys)" }, { "hu(101_qwerty_dot_nodead)", "Hungarian (QWERTY, 101-key, dot, no dead keys)" }, { "hu(102_qwerty_comma_dead)", "Hungarian (QWERTY, 102-key, comma, dead keys)" }, { "hu(102_qwerty_comma_nodead)", "Hungarian (QWERTY, 102-key, comma, no dead keys)" }, { "hu(102_qwerty_dot_dead)", "Hungarian (QWERTY, 102-key, dot, dead keys)" }, { "hu(102_qwerty_dot_nodead)", "Hungarian (QWERTY, 102-key, dot, no dead keys)" }, { "hu(101_qwertz_comma_dead)", "Hungarian (QWERTZ, 101-key, comma, dead keys)" }, { "hu(101_qwertz_comma_nodead)", "Hungarian (QWERTZ, 101-key, comma, no dead keys)" }, { "hu(101_qwertz_dot_dead)", "Hungarian (QWERTZ, 101-key, dot, dead keys)" }, { "hu(101_qwertz_dot_nodead)", "Hungarian (QWERTZ, 101-key, dot, no dead keys)" }, { "hu(102_qwertz_comma_dead)", "Hungarian (QWERTZ, 102-key, comma, dead keys)" }, { "hu(102_qwertz_comma_nodead)", "Hungarian (QWERTZ, 102-key, comma, no dead keys)" }, { "hu(102_qwertz_dot_dead)", "Hungarian (QWERTZ, 102-key, dot, dead keys)" }, { "hu(102_qwertz_dot_nodead)", "Hungarian (QWERTZ, 102-key, dot, no dead keys)" }, { "hu(nodeadkeys)", "Hungarian (no dead keys)" }, { "hu(standard)", "Hungarian (standard)" }, { "is", "Icelandic" }, { "is(dvorak)", "Icelandic (Dvorak)" }, { "is(mac)", "Icelandic (Macintosh)" }, { "is(mac_legacy)", "Icelandic (Macintosh, legacy)" }, { "ng(igbo)", "Igbo" }, { "in", "Indian" }, { "in(iipa)", "Indic IPA" }, { "id(melayu-phoneticx)", "Indonesian (Arab Melayu, extended phonetic)" }, { "id(melayu-phonetic)", "Indonesian (Arab Melayu, phonetic)" }, { "id(pegon-phonetic)", "Indonesian (Arab Pegon, phonetic)" }, { "id", "Indonesian (Latin)" }, { "ca(ike)", "Inuktitut" }, { "ie", "Irish" }, { "ie(UnicodeExpert)", "Irish (UnicodeExpert)" }, { "it", "Italian" }, { "it(ibm)", "Italian (IBM 142)" }, { "it(mac)", "Italian (Macintosh)" }, { "it(us)", "Italian (US)" }, { "it(winkeys)", "Italian (Windows)" }, { "it(nodeadkeys)", "Italian (no dead keys)" }, { "jp", "Japanese" }, { "jp(dvorak)", "Japanese (Dvorak)" }, { "jp(kana)", "Japanese (Kana)" }, { "jp(mac)", "Japanese (Macintosh)" }, { "jp(OADG109A)", "Japanese (OADG 109A)" }, { "id(javanese)", "Javanese" }, { "dz(azerty-deadkeys)", "Kabyle (AZERTY, with dead keys)" }, { "dz(qwerty-gb-deadkeys)", "Kabyle (QWERTY, UK, with dead keys)" }, { "dz(qwerty-us-deadkeys)", "Kabyle (QWERTY, US, with dead keys)" }, { "ru(xal)", "Kalmyk" }, { "in(kan)", "Kannada" }, { "in(kan-kagapa)", "Kannada (KaGaPa, phonetic)" }, { "pl(csb)", "Kashubian" }, { "kz", "Kazakh" }, { "kz(latin)", "Kazakh (Latin)" }, { "kz(ext)", "Kazakh (extended)" }, { "kz(kazrus)", "Kazakh (with Russian)" }, { "kh", "Khmer (Cambodia)" }, { "ke(kik)", "Kikuyu" }, { "ru(kom)", "Komi" }, { "kr", "Korean" }, { "kr(kr104)", "Korean (101/104-key compatible)" }, { "ir(ku_ara)", "Kurdish (Iran, Arabic-Latin)" }, { "ir(ku_f)", "Kurdish (Iran, F)" }, { "ir(ku_alt)", "Kurdish (Iran, Latin Alt-Q)" }, { "ir(ku)", "Kurdish (Iran, Latin Q)" }, { "iq(ku_ara)", "Kurdish (Iraq, Arabic-Latin)" }, { "iq(ku_f)", "Kurdish (Iraq, F)" }, { "iq(ku_alt)", "Kurdish (Iraq, Latin Alt-Q)" }, { "iq(ku)", "Kurdish (Iraq, Latin Q)" }, { "sy(ku_f)", "Kurdish (Syria, F)" }, { "sy(ku_alt)", "Kurdish (Syria, Latin Alt-Q)" }, { "sy(ku)", "Kurdish (Syria, Latin Q)" }, { "tr(ku_f)", "Kurdish (Turkey, F)" }, { "tr(ku_alt)", "Kurdish (Turkey, Latin Alt-Q)" }, { "tr(ku)", "Kurdish (Turkey, Latin Q)" }, { "kg", "Kyrgyz" }, { "kg(phonetic)", "Kyrgyz (phonetic)" }, { "la", "Lao" }, { "la(stea)", "Lao (STEA)" }, { "lv", "Latvian" }, { "lv(fkey)", "Latvian (F)" }, { "lv(modern-cyr)", "Latvian (Modern Cyrillic)" }, { "lv(modern)", "Latvian (Modern Latin)" }, { "lv(adapted)", "Latvian (adapted)" }, { "lv(apostrophe)", "Latvian (apostrophe)" }, { "lv(ergonomic)", "Latvian (ergonomic, ŪGJRMV)" }, { "lv(tilde)", "Latvian (tilde)" }, { "lt", "Lithuanian" }, { "lt(ibm)", "Lithuanian (IBM)" }, { "lt(lekp)", "Lithuanian (LEKP)" }, { "lt(lekpa)", "Lithuanian (LEKPa)" }, { "lt(ratise)", "Lithuanian (Ratise)" }, { "lt(us)", "Lithuanian (US)" }, { "lt(std)", "Lithuanian (standard)" }, { "de(dsb)", "Lower Sorbian" }, { "de(dsb_qwertz)", "Lower Sorbian (QWERTZ)" }, { "mk", "Macedonian" }, { "mk(nodeadkeys)", "Macedonian (no dead keys)" }, { "my", "Malay (Jawi, Arabic Keyboard)" }, { "my(phonetic)", "Malay (Jawi, phonetic)" }, { "in(mal)", "Malayalam" }, { "in(mal_lalitha)", "Malayalam (Lalitha)" }, { "in(mal_poorna)", "Malayalam (Poorna, extended InScript)" }, { "in(mal_enhanced)", "Malayalam (enhanced InScript, with rupee)" }, { "mt", "Maltese" }, { "mt(alt-gb)", "Maltese (UK, with AltGr overrides)" }, { "mt(us)", "Maltese (US)" }, { "mt(alt-us)", "Maltese (US, with AltGr overrides)" }, { "in(mni)", "Manipuri (Meitei)" }, { "nz(mao)", "Maori" }, { "in(mar-kagapa)", "Marathi (KaGaPa, phonetic)" }, { "in(marathi)", "Marathi (enhanced InScript)" }, { "ru(chm)", "Mari" }, { "cm(mmuock)", "Mmuock" }, { "md", "Moldavian" }, { "mm(mnw)", "Mon" }, { "mm(mnw-a1)", "Mon (A1)" }, { "mn", "Mongolian" }, { "cn(mon_trad)", "Mongolian (Bichig)" }, { "cn(mon_trad_galik)", "Mongolian (Galik)" }, { "cn(mon_manchu_galik)", "Mongolian (Manchu Galik)" }, { "cn(mon_trad_manchu)", "Mongolian (Manchu)" }, { "cn(mon_todo_galik)", "Mongolian (Todo Galik)" }, { "cn(mon_trad_todo)", "Mongolian (Todo)" }, { "cn(mon_trad_xibe)", "Mongolian (Xibe)" }, { "me", "Montenegrin" }, { "me(cyrillic)", "Montenegrin (Cyrillic)" }, { "me(cyrillicyz)", "Montenegrin (Cyrillic, ZE and ZHE swapped)" }, { "me(cyrillicalternatequotes)", "Montenegrin (Cyrillic, with guillemets)" }, { "me(latinyz)", "Montenegrin (Latin, QWERTY)" }, { "me(latinunicode)", "Montenegrin (Latin, Unicode)" }, { "me(latinunicodeyz)", "Montenegrin (Latin, Unicode, QWERTY)" }, { "me(latinalternatequotes)", "Montenegrin (Latin, with guillemets)" }, { "gn", "N'Ko (AZERTY)" }, { "np", "Nepali" }, { "fi(smi)", "Northern Saami (Finland)" }, { "no(smi)", "Northern Saami (Norway)" }, { "no(smi_nodeadkeys)", "Northern Saami (Norway, no dead keys)" }, { "se(smi)", "Northern Saami (Sweden)" }, { "no", "Norwegian" }, { "no(colemak)", "Norwegian (Colemak)" }, { "no(colemak_dh_wide)", "Norwegian (Colemak-DH Wide)" }, { "no(colemak_dh)", "Norwegian (Colemak-DH)" }, { "no(dvorak)", "Norwegian (Dvorak)" }, { "no(mac)", "Norwegian (Macintosh)" }, { "no(mac_nodeadkeys)", "Norwegian (Macintosh, no dead keys)" }, { "no(winkeys)", "Norwegian (Windows)" }, { "no(nodeadkeys)", "Norwegian (no dead keys)" }, { "fr(oci)", "Occitan" }, { "ie(ogam)", "Ogham" }, { "ie(ogam_is434)", "Ogham (IS434)" }, { "in(ori)", "Oriya" }, { "in(ori-bolnagri)", "Oriya (Bolnagri)" }, { "in(ori-wx)", "Oriya (Wx)" }, { "ge(os)", "Ossetian (Georgia)" }, { "ru(os_winkeys)", "Ossetian (Windows)" }, { "ru(os_legacy)", "Ossetian (legacy)" }, { "rs(rue)", "Pannonian Rusyn" }, { "af(ps)", "Pashto" }, { "af(ps-olpc)", "Pashto (Afghanistan, OLPC)" }, { "ir", "Persian" }, { "ir(winkeys)", "Persian (Windows)" }, { "ir(pes_keypad)", "Persian (with Persian keypad)" }, { "pl", "Polish" }, { "gb(pl)", "Polish (British keyboard)" }, { "pl(dvorak)", "Polish (Dvorak)" }, { "pl(dvorak_altquotes)", "Polish (Dvorak, with Polish quotes on key 1)" }, { "pl(dvorak_quotes)", "Polish (Dvorak, with Polish quotes on quotemark key)" }, { "pl(qwertz)", "Polish (QWERTZ)" }, { "pl(legacy)", "Polish (legacy)" }, { "pl(dvp)", "Polish (programmer Dvorak)" }, { "pt", "Portuguese" }, { "br", "Portuguese (Brazil)" }, { "br(dvorak)", "Portuguese (Brazil, Dvorak)" }, { "br(thinkpad)", "Portuguese (Brazil, IBM/Lenovo ThinkPad)" }, { "br(nativo-us)", "Portuguese (Brazil, Nativo for US keyboards)" }, { "br(nativo)", "Portuguese (Brazil, Nativo)" }, { "br(nodeadkeys)", "Portuguese (Brazil, no dead keys)" }, { "pt(mac)", "Portuguese (Macintosh)" }, { "pt(mac_nodeadkeys)", "Portuguese (Macintosh, no dead keys)" }, { "pt(nativo-us)", "Portuguese (Nativo for US keyboards)" }, { "pt(nativo)", "Portuguese (Nativo)" }, { "pt(nodeadkeys)", "Portuguese (no dead keys)" }, { "in(jhelum)", "Punjabi (Gurmukhi Jhelum)" }, { "in(guru)", "Punjabi (Gurmukhi)" }, { "ro", "Romanian" }, { "de(ro)", "Romanian (Germany)" }, { "de(ro_nodeadkeys)", "Romanian (Germany, no dead keys)" }, { "ro(winkeys)", "Romanian (Windows)" }, { "ro(std)", "Romanian (standard)" }, { "ru", "Russian" }, { "by(ru)", "Russian (Belarus)" }, { "br(rus)", "Russian (Brazil, phonetic)" }, { "cz(rus)", "Russian (Czechia, phonetic)" }, { "ru(dos)", "Russian (DOS)" }, { "ge(ru)", "Russian (Georgia)" }, { "de(ru)", "Russian (Germany, phonetic)" }, { "kz(ruskaz)", "Russian (Kazakhstan, with Kazakh)" }, { "ru(mac)", "Russian (Macintosh)" }, { "pl(ru_phonetic_dvorak)", "Russian (Poland, phonetic Dvorak)" }, { "se(rus)", "Russian (Sweden, phonetic)" }, { "us(rus)", "Russian (US, phonetic)" }, { "ru(ruchey_en)", "Russian (engineering, EN)" }, { "ru(ruchey_ru)", "Russian (engineering, RU)" }, { "ru(legacy)", "Russian (legacy)" }, { "ru(phonetic)", "Russian (phonetic)" }, { "ru(phonetic_azerty)", "Russian (phonetic, AZERTY)" }, { "ru(phonetic_dvorak)", "Russian (phonetic, Dvorak)" }, { "ru(phonetic_winkeys)", "Russian (phonetic, Windows)" }, { "ru(phonetic_YAZHERTY)", "Russian (phonetic, YAZHERTY)" }, { "ru(typewriter)", "Russian (typewriter)" }, { "ru(typewriter-legacy)", "Russian (typewriter, legacy)" }, { "tw(saisiyat)", "Saisiyat (Taiwan)" }, { "lt(sgs)", "Samogitian" }, { "in(san-kagapa)", "Sanskrit (KaGaPa, phonetic)" }, { "in(sat)", "Santali (Ol Chiki)" }, { "gb(gla)", "Scottish Gaelic" }, { "rs", "Serbian" }, { "rs(yz)", "Serbian (Cyrillic, ZE and ZHE swapped)" }, { "rs(alternatequotes)", "Serbian (Cyrillic, with guillemets)" }, { "rs(latin)", "Serbian (Latin)" }, { "rs(latinyz)", "Serbian (Latin, QWERTY)" }, { "rs(latinunicode)", "Serbian (Latin, Unicode)" }, { "rs(latinunicodeyz)", "Serbian (Latin, Unicode, QWERTY)" }, { "rs(latinalternatequotes)", "Serbian (Latin, with guillemets)" }, { "ru(srp)", "Serbian (Russia)" }, { "us(hbs)", "Serbo-Croatian (US)" }, { "mm(shn)", "Shan" }, { "mm(zgt)", "Shan (Zawgyi)" }, { "it(scn)", "Sicilian" }, { "pl(szl)", "Silesian" }, { "pk(snd)", "Sindhi" }, { "lk(us)", "Sinhala (US)" }, { "lk", "Sinhala (phonetic)" }, { "sk", "Slovak" }, { "sk(qwerty)", "Slovak (QWERTY)" }, { "sk(qwerty_bksl)", "Slovak (QWERTY, extra backslash)" }, { "sk(bksl)", "Slovak (extra backslash)" }, { "si", "Slovenian" }, { "si(us)", "Slovenian (US)" }, { "si(alternatequotes)", "Slovenian (with guillemets)" }, { "es", "Spanish" }, { "es(dvorak)", "Spanish (Dvorak)" }, { "latam", "Spanish (Latin American)" }, { "latam(colemak)", "Spanish (Latin American, Colemak)" }, { "latam(dvorak)", "Spanish (Latin American, Dvorak)" }, { "latam(deadtilde)", "Spanish (Latin American, dead tilde)" }, { "latam(nodeadkeys)", "Spanish (Latin American, no dead keys)" }, { "es(winkeys)", "Spanish (Windows)" }, { "es(deadtilde)", "Spanish (dead tilde)" }, { "es(nodeadkeys)", "Spanish (no dead keys)" }, { "ke", "Swahili (Kenya)" }, { "tz", "Swahili (Tanzania)" }, { "se", "Swedish" }, { "se(colemak)", "Swedish (Colemak)" }, { "se(dvorak)", "Swedish (Dvorak)" }, { "se(us_dvorak)", "Swedish (Dvorak, intl.)" }, { "se(mac)", "Swedish (Macintosh)" }, { "se(svdvorak)", "Swedish (Svdvorak)" }, { "se(us)", "Swedish (US)" }, { "se(nodeadkeys)", "Swedish (no dead keys)" }, { "se(swl)", "Swedish Sign Language" }, { "sy(syc)", "Syriac" }, { "sy(syc_phonetic)", "Syriac (phonetic)" }, { "tw", "Taiwanese" }, { "tw(indigenous)", "Taiwanese (indigenous)" }, { "tj", "Tajik" }, { "tj(legacy)", "Tajik (legacy)" }, { "in(tam)", "Tamil (InScript, with Arabic numerals)" }, { "in(tam_tamilnumbers)", "Tamil (InScript, with Tamil numerals)" }, { "lk(tam_unicode)", "Tamil (Sri Lanka, TamilNet '99)" }, { "lk(tam_TAB)", "Tamil (Sri Lanka, TamilNet '99, TAB encoding)" }, { "in(tamilnet_tamilnumbers)", "Tamil (TamilNet '99 with Tamil numerals)" }, { "in(tamilnet)", "Tamil (TamilNet '99)" }, { "in(tamilnet_TAB)", "Tamil (TamilNet '99, TAB encoding)" }, { "in(tamilnet_TSCII)", "Tamil (TamilNet '99, TSCII encoding)" }, { "ma(rif)", "Tarifit" }, { "ru(tt)", "Tatar" }, { "in(tel)", "Telugu" }, { "in(tel-kagapa)", "Telugu (KaGaPa, phonetic)" }, { "in(tel-sarala)", "Telugu (Sarala)" }, { "th", "Thai" }, { "th(mnc)", "Thai (Manoonchai)" }, { "th(pat)", "Thai (Pattachote)" }, { "th(tis)", "Thai (TIS-820.2538)" }, { "cn(tib)", "Tibetan" }, { "cn(tib_asciinum)", "Tibetan (with ASCII numerals)" }, { "bw", "Tswana" }, { "tr", "Turkish" }, { "tr(alt)", "Turkish (Alt-Q)" }, { "tr(e)", "Turkish (E)" }, { "tr(f)", "Turkish (F)" }, { "de(tr)", "Turkish (Germany)" }, { "tr(intl)", "Turkish (intl., with dead keys)" }, { "tm", "Turkmen" }, { "tm(alt)", "Turkmen (Alt-Q)" }, { "ru(udm)", "Udmurt" }, { "ua", "Ukrainian" }, { "ua(winkeysenhanced)", "Ukrainian (Windows Enhanced)" }, { "ua(winkeys)", "Ukrainian (Windows)" }, { "ua(homophonic)", "Ukrainian (homophonic)" }, { "ua(legacy)", "Ukrainian (legacy)" }, { "ua(macOS)", "Ukrainian (macOS)" }, { "ua(phonetic)", "Ukrainian (phonetic)" }, { "ua(typewriter)", "Ukrainian (typewriter)" }, { "pk(pak_urdu_phonetic)", "Urdu (Pak Urdu Phonetic)" }, { "pk", "Urdu (Pakistan)" }, { "pk(urd-crulp)", "Urdu (Pakistan, CRULP)" }, { "pk(urd-nla)", "Urdu (Pakistan, NLA)" }, { "in(urd-winkeys)", "Urdu (Windows)" }, { "in(urd-phonetic3)", "Urdu (alt. phonetic)" }, { "in(urd-phonetic)", "Urdu (phonetic)" }, { "cn(ug)", "Uyghur" }, { "uz", "Uzbek" }, { "af(uz)", "Uzbek (Afghanistan)" }, { "af(uz-olpc)", "Uzbek (Afghanistan, OLPC)" }, { "uz(latin)", "Uzbek (Latin)" }, { "vn", "Vietnamese" }, { "vn(fr)", "Vietnamese (France)" }, { "vn(us)", "Vietnamese (US)" }, { "sn", "Wolof" }, { "ru(sah)", "Yakut" }, { "ng(yoruba)", "Yoruba" }, }; labwc-tweaks-0.1.0/src/find-themes.cpp000066400000000000000000000060631513773473700176200ustar00rootroot00000000000000#include #include #include #include "find-themes.h" #include "log.h" static bool hasOnlyCursorSubdir(QString path) { QStringList entries = QDir(path).entryList(QDir::Dirs | QDir::NoDotAndDotDot); return entries.contains("cursors") && entries.length() == 1; } static bool hasCursorSubdir(QString path) { QStringList entries = QDir(path).entryList(QDir::Dirs | QDir::NoDotAndDotDot); return entries.contains("cursors"); } QStringList findIconThemes(enum lab_icon_theme_type type) { QStringList paths; // Setup paths including // - $HOME/.icons // - $XDG_DATA_HOME/icons // - $XDG_DATA_DIRS/icons paths.push_back(QString(qgetenv("HOME") + "/.icons")); QStringList standardPaths = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation); for (const QString &path : std::as_const(standardPaths)) { paths.push_back(QString(path + "/icons")); } // Iterate over paths and use any icon-theme which has more than just a // "cursors" subdirectory (because that means it's for cursors only) QStringList themes; themes.push_front(""); themes.push_front("Adwaita"); for (const QString &path : std::as_const(paths)) { QDir dir(path); QStringList entries = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); for (const QString &entry : std::as_const(entries)) { switch (type) { case LAB_ICON_THEME_TYPE_ICON: if (hasOnlyCursorSubdir(QString(path + "/" + entry))) { continue; } themes.push_back(entry); break; case LAB_ICON_THEME_TYPE_CURSOR: if (hasCursorSubdir(QString(path + "/" + entry))) { themes.push_back(entry); } break; default: break; } } } themes.removeDuplicates(); themes.sort(Qt::CaseInsensitive); return themes; } static bool hasOpenboxOrLabwcSubdir(QString path) { QStringList entries = QDir(path).entryList(QDir::Dirs | QDir::NoDotAndDotDot); return entries.contains("openbox-3") || entries.contains("labwc"); } QStringList findLabwcThemes(void) { QStringList paths; paths.push_back(QString(qgetenv("HOME") + "/.themes")); QStringList standardPaths = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation); for (const QString &path : std::as_const(standardPaths)) { paths.push_back(QString(path + "/themes")); } QStringList themes; themes.push_front("Adwaita"); for (const QString &path : std::as_const(paths)) { QDir dir(path); QStringList entries = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); for (const QString &entry : std::as_const(entries)) { if (hasOpenboxOrLabwcSubdir(QString(path + "/" + entry))) { themes.push_back(entry); } } } themes.removeDuplicates(); themes.sort(Qt::CaseInsensitive); return themes; } labwc-tweaks-0.1.0/src/find-themes.h000066400000000000000000000004431513773473700172610ustar00rootroot00000000000000#ifndef FIND_THEMES_H #define FIND_THEMES_H enum lab_icon_theme_type { LAB_ICON_THEME_TYPE_NONE = 0, LAB_ICON_THEME_TYPE_ICON, LAB_ICON_THEME_TYPE_CURSOR, }; QStringList findIconThemes(enum lab_icon_theme_type type); QStringList findLabwcThemes(void); #endif // FIND_THEMES_H labwc-tweaks-0.1.0/src/keyboard.cpp000066400000000000000000000270301513773473700172120ustar00rootroot00000000000000#include #include #include #include #include #include #include "keyboard.h" #include "evdev-lst-layouts.h" #include "environment.h" #include "find-themes.h" #include "layoutmodel.h" #include "macros.h" #include "settings.h" #include "./ui_keyboard.h" Keyboard::Keyboard(QWidget *parent) : QWidget(parent), ui(new Ui::pageKeyboard) { ui->setupUi(this); } Keyboard::~Keyboard() { delete ui; } void Keyboard::getGrpToggleOptions(QVector> &combo) { // Generated based on XKEYBOARD-CONFIG(7) // clang-format off combo.append(QSharedPointer(new Pair("", ""))); combo.append(QSharedPointer(new Pair("grp:shift_caps_toggle", tr("Shift+Caps Lock")))); combo.append(QSharedPointer(new Pair("grp:alt_caps_toggle", tr("Alt+Caps Lock")))); combo.append(QSharedPointer(new Pair("grp:shifts_toggle", tr("Both Shifts together")))); combo.append(QSharedPointer(new Pair("grp:alts_toggle", tr("Both Alts together")))); combo.append(QSharedPointer(new Pair("grp:ctrls_toggle", tr("Both Ctrls together")))); combo.append(QSharedPointer(new Pair("grp:switch", tr("Right Alt (while pressed)")))); combo.append(QSharedPointer(new Pair("grp:lswitch", tr("Left Alt (while pressed)")))); combo.append(QSharedPointer(new Pair("grp:lwin_switch", tr("Left Win (while pressed)")))); combo.append(QSharedPointer(new Pair("grp:rwin_switch", tr("Right Win (while pressed)")))); combo.append(QSharedPointer(new Pair("grp:win_switch", tr("Any Win (while pressed)")))); combo.append(QSharedPointer(new Pair("grp:menu_switch", tr("Menu (while pressed), Shift+Menu for Menu")))); combo.append(QSharedPointer(new Pair("grp:caps_switch", tr("Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action")))); combo.append(QSharedPointer(new Pair("grp:rctrl_switch", tr("Right Ctrl (while pressed)")))); combo.append(QSharedPointer(new Pair("grp:toggle", tr("Right Alt")))); combo.append(QSharedPointer(new Pair("grp:lalt_toggle", tr("Left Alt")))); combo.append(QSharedPointer(new Pair("grp:caps_toggle", tr("Caps Lock")))); combo.append(QSharedPointer(new Pair("grp:caps_select", tr("Caps Lock to first layout; Shift+Caps Lock to second layout")))); combo.append(QSharedPointer(new Pair("grp:win_menu_select", tr("Left Win to first layout; Right Win/Menu to second layout")))); combo.append(QSharedPointer(new Pair("grp:ctrl_select", tr("Left Ctrl to first layout; Right Ctrl to second layout")))); combo.append(QSharedPointer(new Pair("grp:alt_altgr_toggle", tr("Both Alts together; AltGr alone chooses third level")))); combo.append(QSharedPointer(new Pair("grp:ctrl_shift_toggle", tr("Ctrl+Shift")))); combo.append(QSharedPointer(new Pair("grp:lctrl_lshift_toggle", tr("Left Ctrl+Left Shift")))); combo.append(QSharedPointer(new Pair("grp:rctrl_rshift_toggle", tr("Right Ctrl+Right Shift")))); combo.append(QSharedPointer(new Pair("grp:ctrl_shift_toggle_bidir", tr("Left Ctrl+Left Shift chooses previous layout, Right Ctrl + Right Shift chooses next layout")))); combo.append(QSharedPointer(new Pair("grp:ctrl_alt_toggle", tr("Alt+Ctrl")))); combo.append(QSharedPointer(new Pair("grp:lctrl_lalt_toggle", tr("Left Alt+Left Ctrl")))); combo.append(QSharedPointer(new Pair("grp:rctrl_ralt_toggle", tr("Right Alt+Right Ctrl")))); combo.append(QSharedPointer(new Pair("grp:ctrl_alt_toggle_bidir", tr("Left Ctrl+Left Alt chooses previous layout, Right Ctrl + Right Alt chooses next layout")))); combo.append(QSharedPointer(new Pair("grp:alt_shift_toggle", tr("Alt+Shift")))); combo.append(QSharedPointer(new Pair("grp:lalt_lshift_toggle", tr("Left Alt+Left Shift")))); combo.append(QSharedPointer(new Pair("grp:ralt_rshift_toggle", tr("Right Alt+Right Shift")))); combo.append(QSharedPointer(new Pair("grp:alt_shift_toggle_bidir", tr("Left Alt+Left Shift chooses previous layout, Right Alt + Right Shift chooses next layout")))); combo.append(QSharedPointer(new Pair("grp:menu_toggle", tr("Menu")))); combo.append(QSharedPointer(new Pair("grp:lwin_toggle", tr("Left Win")))); combo.append(QSharedPointer(new Pair("grp:alt_space_toggle", tr("Alt+Space")))); combo.append(QSharedPointer(new Pair("grp:win_space_toggle", tr("Win+Space")))); combo.append(QSharedPointer(new Pair("grp:ctrl_space_toggle", tr("Ctrl+Space")))); combo.append(QSharedPointer(new Pair("grp:rwin_toggle", tr("Right Win")))); combo.append(QSharedPointer(new Pair("grp:lshift_toggle", tr("Left Shift")))); combo.append(QSharedPointer(new Pair("grp:rshift_toggle", tr("Right Shift")))); combo.append(QSharedPointer(new Pair("grp:lctrl_toggle", tr("Left Ctrl")))); combo.append(QSharedPointer(new Pair("grp:rctrl_toggle", tr("Right Ctrl")))); combo.append(QSharedPointer(new Pair("grp:sclk_toggle", tr("Scroll Lock")))); combo.append(QSharedPointer(new Pair("grp:lctrl_lwin_rctrl_menu", tr("Ctrl+Left Win to first layout; Ctrl+Menu to second layout")))); combo.append(QSharedPointer(new Pair("grp:lctrl_lwin_toggle", tr("Left Ctrl+Left Win")))); // clang-format on } void Keyboard::activate() { /* * Keyboard Layout * * We fallback on the environment variable if nothing has been set in the environment file */ QString xkb_default_layout = qgetenv("XKB_DEFAULT_LAYOUT"); settingsAddEnvStr("XKB_DEFAULT_LAYOUT", xkb_default_layout.isEmpty() ? "" : xkb_default_layout); m_model = new LayoutModel(this); ui->layoutView->setModel(m_model); connect(ui->layoutAdd, &QPushButton::pressed, this, &Keyboard::addSelectedLayout); connect(ui->layoutRemove, &QPushButton::pressed, this, &Keyboard::deleteSelectedLayout); ui->layoutCombo->addItem(tr("Select layout to add...")); for (auto layout : evdev_lst_layouts) { ui->layoutCombo->addItem(layout.description); } /* Repeat Rate */ settingsAddXmlInt("/labwc_config/keyboard/repeatRate", 25); ui->repeatRate->setValue(getInt("/labwc_config/keyboard/repeatRate")); ui->repeatRate->setToolTip(tr("Rate at which keypresses are repeated per second")); /* Repeat Delay */ settingsAddXmlInt("/labwc_config/keyboard/repeatDelay", 600); ui->repeatDelay->setValue(getInt("/labwc_config/keyboard/repeatDelay")); ui->repeatDelay->setToolTip(tr("Delay before keypresses are repeated")); /* Numlock */ settingsAddXmlBoo("/labwc_config/keyboard/numlock", false); ui->numlock->setChecked(getBool("/labwc_config/keyboard/numlock")); ui->numlock->setToolTip(tr("Enable Num Lock when recognizing a new keyboard")); // Keyboard Layout Group Switching settingsAddEnvStr("XKB_DEFAULT_OPTIONS", ""); ui->layoutGrpSwitcher->setToolTip(tr("Key combination to switch keyboard layout")); QVector> combo; getGrpToggleOptions(combo); QString current = getStr("XKB_DEFAULT_OPTIONS"); ui->layoutGrpSwitcher->setText(current); // QComboBoxes with longs strings are ellided with some themes (like Kvantum and Breeze) when // the drop down menu is opened. The elliding can be avoided, but then the text is just cut off // instead. We could of course just set the QComboBox width to the widest item, but that screws // up the layout quite badly. // // So, instead we use a QPushButton to open a QDialog with a QTableView. For this with need to // build a model with two columns: QStandardItemModel *model = new QStandardItemModel(this); model->setColumnCount(2); model->setHorizontalHeaderLabels({ tr("Key"), tr("Description") }); model->setHeaderData(0, Qt::Horizontal, Qt::AlignLeft, Qt::TextAlignmentRole); model->setHeaderData(1, Qt::Horizontal, Qt::AlignLeft, Qt::TextAlignmentRole); auto addItem = [&](const QString &key, const QString &text) { QStandardItem *keyItem = new QStandardItem(key); QStandardItem *textItem = new QStandardItem(text); keyItem->setData(key, Qt::UserRole); model->appendRow({ keyItem, textItem }); }; foreach (auto policy, combo) { addItem(policy.get()->value(), policy.get()->description()); } // The lambda parameters must match the signal: clicked(bool) vs [](bool) { ... } connect(ui->layoutGrpSwitcher, &QPushButton::clicked, this, [this, model, current](bool) { QDialog dialog(this); dialog.setWindowTitle(tr("Select key combination")); QVBoxLayout layout(&dialog); QTableView view; view.setModel(model); view.setSelectionBehavior(QAbstractItemView::SelectRows); view.setSelectionMode(QAbstractItemView::SingleSelection); view.setEditTriggers(QAbstractItemView::NoEditTriggers); view.setTextElideMode(Qt::ElideNone); view.resizeColumnsToContents(); view.horizontalHeader()->setStretchLastSection(true); view.verticalHeader()->hide(); view.horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch); // Restore selection when opening dialog for (int row = 0; row < model->rowCount(); ++row) { if (model->item(row, 0)->text() == current) { QModelIndex idx = model->index(row, 0); view.setCurrentIndex(idx); view.scrollTo(idx, QAbstractItemView::PositionAtCenter); } } layout.addWidget(&view); QDialogButtonBox buttons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); layout.addWidget(&buttons); // Set sensible dialog size dialog.setMinimumWidth(500); dialog.setMinimumHeight(400); dialog.adjustSize(); connect(&buttons, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); connect(&buttons, &QDialogButtonBox::rejected, &dialog, &QDialog::reject); connect(&view, &QTableView::doubleClicked, &dialog, &QDialog::accept); if (dialog.exec() == QDialog::Accepted) { QModelIndex idx = view.currentIndex(); if (idx.isValid()) { const int row = idx.row(); const QString key = model->item(row, 0)->text(); ui->layoutGrpSwitcher->setText(key); } } }); } void Keyboard::addSelectedLayout(void) { QString description = ui->layoutCombo->currentText(); for (auto layout : evdev_lst_layouts) { if (description == layout.description) { m_model->addLayout(layout.code, layout.description); } } } void Keyboard::deleteSelectedLayout(void) { m_model->deleteLayout(ui->layoutView->currentIndex().row()); } void Keyboard::onApply() { /* * We include variants in XKB_DEFAULT_LAYOUT, for example * "latam(deadtilde),ru(phonetic),gr", so XKB_DEFAULT_VARIANT is set to * empty. */ QString layout = m_model->getXkbDefaultLayout(); if (!layout.isEmpty()) { setStr("XKB_DEFAULT_LAYOUT", layout); environmentSet("XKB_DEFAULT_VARIANT", ""); } setInt("/labwc_config/keyboard/repeatRate", ui->repeatRate->value()); setInt("/labwc_config/keyboard/repeatDelay", ui->repeatDelay->value()); setBool("/labwc_config/keyboard/numlock", ui->numlock->isChecked()); setStr("XKB_DEFAULT_OPTIONS", ui->layoutGrpSwitcher->text()); } labwc-tweaks-0.1.0/src/keyboard.h000066400000000000000000000010531513773473700166540ustar00rootroot00000000000000#ifndef KEYBOARD_H #define KEYBOARD_H #include #include "layoutmodel.h" QT_BEGIN_NAMESPACE namespace Ui { class pageKeyboard; } QT_END_NAMESPACE class Keyboard : public QWidget { Q_OBJECT public: Keyboard(QWidget *parent = nullptr); ~Keyboard(); void activate(); void onApply(); private slots: void addSelectedLayout(void); void deleteSelectedLayout(void); private: Ui::pageKeyboard *ui; LayoutModel *m_model; void getGrpToggleOptions(QVector> &combo); }; #endif // KEYBOARD_H labwc-tweaks-0.1.0/src/keyboard.ui000066400000000000000000000121351513773473700170450ustar00rootroot00000000000000 pageKeyboard QFrame::Shape::NoFrame true 9 General 16 8 Repeat rate Qt::Orientation::Horizontal Repeat delay true ms 999 Num lock Enable on startup Keyboard Layout 16 8 Qt::Orientation::Horizontal 3 Add Remove Layout switch Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/layoutmodel.cpp000066400000000000000000000052351513773473700177530ustar00rootroot00000000000000#include #include "environment.h" #include "evdev-lst-layouts.h" #include "layoutmodel.h" #include "log.h" #include "settings.h" LayoutModel::LayoutModel(QObject *parent) : QAbstractListModel(parent) { QString xkb_default_layout = getStr("XKB_DEFAULT_LAYOUT"); QStringList layoutElements = xkb_default_layout.split(','); // We don't advise using XKB_DEFAULT_VARIANT, but handle it just in case by adding it to the // respective layouts, for example like "latam(deadtilde)" QString xkb_default_variant = environmentGet("XKB_DEFAULT_VARIANT"); QStringList variantElements = xkb_default_variant.split(',', Qt::KeepEmptyParts); int i = 0; foreach (QString element, variantElements) { if (layoutElements.size() <= i) { break; } // Let's not add another (variant) if one is already specified. if (layoutElements[i].contains("(")) { continue; } if (!element.isEmpty()) { layoutElements[i] += "(" + element + ")"; } ++i; } foreach (QString element, layoutElements) { for (auto layout : evdev_lst_layouts) { if (element == layout.code) { addLayout(layout.code, layout.description); } } } } LayoutModel::~LayoutModel() { } QString LayoutModel::getXkbDefaultLayout() { QString ret; QVectorIterator> iter(m_layouts); while (iter.hasNext()) { ret += iter.next().get()->value(); if (iter.hasNext()) { ret += ","; } } return ret; } int LayoutModel::rowCount(const QModelIndex &parent) const { return m_layouts.size(); } QVariant LayoutModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) { return {}; } const int row = index.row(); switch (role) { case Qt::DisplayRole: return m_layouts.at(row)->description() + " [" + m_layouts.at(row)->value() + "]"; } return {}; } void LayoutModel::update(void) { QModelIndex topLeft = createIndex(0, 0); emit dataChanged(topLeft, topLeft, { Qt::DisplayRole }); } void LayoutModel::addLayout(const QString &code, const QString &desc) { QVectorIterator> iter(m_layouts); while (iter.hasNext()) { if (iter.next().get()->value() == code) { warn("cannot add the same layout twice"); return; } } m_layouts.append(QSharedPointer(new Pair(code, desc))); update(); } void LayoutModel::deleteLayout(int index) { if (index < 0 || index >= m_layouts.size()) { return; } m_layouts.remove(index); update(); } labwc-tweaks-0.1.0/src/layoutmodel.h000066400000000000000000000011201513773473700174050ustar00rootroot00000000000000#pragma once #include #include #include "pair.h" class LayoutModel : public QAbstractListModel { Q_OBJECT public: LayoutModel(QObject *parent = nullptr); ~LayoutModel(); int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; void addLayout(const QString &code, const QString &desc); void deleteLayout(int index); QString getXkbDefaultLayout(); private: void update(void); QVector> m_layouts; }; labwc-tweaks-0.1.0/src/log.h000066400000000000000000000047161513773473700156460ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-only #pragma once #include #include enum LogLevel { FATAL, ERROR, WARN, INFO, }; constexpr const char *log_level_string(LogLevel level) { switch (level) { case LogLevel::FATAL: return "fatal"; case LogLevel::ERROR: return "error"; case LogLevel::WARN: return "warn"; case LogLevel::INFO: return "info"; default: return "unknown"; } } template static inline void _log(LogLevel level, std::format_string fmt, Args &&...args) { std::string msg = std::vformat(fmt.get(), std::make_format_args(args...)); switch (level) { case LogLevel::FATAL: case LogLevel::ERROR: msg = std::string("\033[1;31m") + log_level_string(level) + ": " + msg + "\033[0m"; break; case LogLevel::WARN: msg = std::string("\033[1;33m") + log_level_string(level) + ": " + msg + "\033[0m"; break; case LogLevel::INFO: msg = std::string("\033[1;32m") + log_level_string(level) + ": " + msg + "\033[0m"; break; default: break; } std::println(stderr, "{}", msg); } #define die(fmt, ...) \ { \ _log(LogLevel::FATAL, "[{}:{}] {}", __FILE__, __LINE__, std::format(fmt, ##__VA_ARGS__)); \ exit(EXIT_FAILURE); \ } #define err(fmt, ...) \ { \ _log(LogLevel::ERROR, "[{}:{}] {}", __FILE__, __LINE__, std::format(fmt, ##__VA_ARGS__)); \ } #define warn(fmt, ...) \ { \ _log(LogLevel::WARN, "[{}:{}] {}", __FILE__, __LINE__, std::format(fmt, ##__VA_ARGS__)); \ } #define info(fmt, ...) \ { \ _log(LogLevel::INFO, "[{}:{}] {}", __FILE__, __LINE__, std::format(fmt, ##__VA_ARGS__)); \ } labwc-tweaks-0.1.0/src/macros.h000066400000000000000000000006631513773473700163460ustar00rootroot00000000000000#ifndef MACROS_H #define MACROS_H #include #define LAB_INVALID SHRT_MAX #define TEXT(widget) widget->currentText().toLatin1().data() /* * Typically used when a widget like a QComboBox contains translated text * which obviously would not be very good to feed to rc.xml and we therefore * need the QVariant userdata instead. */ #define DATA(widget) widget->currentData().toString().toLatin1().data() #endif // MACROS_H labwc-tweaks-0.1.0/src/main.cpp000066400000000000000000000075011513773473700163370ustar00rootroot00000000000000/*~ * Welcome, dear reader. This is the main file of labwc-tweaks, and as such, a good starting point * for reading the code. Comments beginning with a tilde (~) are part of a thread running through * the source with the aim of shortening the route to familiarity. They are meant to be read in a * certain order. */ #include #include #include #include #include #include "environment.h" #include "log.h" #include "maindialog.h" #include "settings.h" #include "xml.h" static void initLocale(QTranslator *qtTranslator, QTranslator *translator) { QApplication *app = qApp; #if PROJECT_TRANSLATION_TEST_ENABLED QLocale locale(QLocale(PROJECT_TRANSLATION_TEST_LANGUAGE)); QLocale::setDefault(locale); #else QLocale locale = QLocale::system(); #endif // Qt translations (buttons text and the like) QString translationsPath = QLibraryInfo::path(QLibraryInfo::TranslationsPath); QString translationsFileName = QStringLiteral("qt_") + locale.name(); if (qtTranslator->load(translationsFileName, translationsPath)) app->installTranslator(qtTranslator); translationsFileName = QString(PROJECT_ID) + '_' + locale.name(); // E.g. "_en" // Try first in the same binary directory, in case we are building, // otherwise read from system data translationsPath = QCoreApplication::applicationDirPath(); bool isLoaded = translator->load(translationsFileName, translationsPath); if (!isLoaded) { // "/usr/share//translations isLoaded = translator->load(translationsFileName, QStringLiteral(PROJECT_DATA_DIR) + QStringLiteral("/translations")); } app->installTranslator(translator); } void initConfig(std::string &configFile) { bool success = xml_init(configFile.data()); if (!success) { QMessageBox msgBox; msgBox.setText(QObject::tr("Error loading ") + QString(configFile.data())); msgBox.setInformativeText( QObject::tr("Run labwc-tweaks from a terminal to view error messages")); msgBox.exec(); exit(EXIT_FAILURE); } } void mkdir_p(std::string path) { if (!std::filesystem::exists(path)) { info("Creating directory '{}'", path); std::filesystem::create_directories(path); } } int main(int argc, char *argv[]) { QApplication app(argc, argv); app.setApplicationName(PROJECT_ID); QTranslator qtTranslator, translator; initLocale(&qtTranslator, &translator); std::string config_home = std::getenv("HOME") + std::string("/.config/labwc"); std::string config_dir = std::getenv("LABWC_CONFIG_DIR") ?: config_home; mkdir_p(config_dir); std::string environment_file = config_dir + "/environment"; environmentInit(environment_file); std::string config_file = config_dir + "/rc.xml"; initConfig(config_file); /*~ * This settings vector contains the master state of all key=value type settings that can be * changed by labwc-tweaks. * * settings.h contains an API for working with these. */ std::vector> settings; settingsInit(&settings); MainDialog window; window.show(); // Make work the window icon also when the application is not (yet) installed QString iconSuffix = QString("%1%2%3").arg("/", PROJECT_APPSTREAM_ID, QStringLiteral(".svg")); QString icoLocalPath = QCoreApplication::applicationDirPath() + iconSuffix; QString icoSysPath = QStringLiteral(PROJECT_ICON_SYSTEM_PATH) + iconSuffix; // If icoLocalPath exists, set to icolocalPath; else set to icoSysPath QIcon appIcon = (QFileInfo(icoLocalPath).exists()) ? QIcon(icoLocalPath) : QIcon(icoSysPath); window.setWindowIcon(appIcon); return app.exec(); } labwc-tweaks-0.1.0/src/maindialog.cpp000066400000000000000000000121401513773473700175120ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include "appearance.h" #include "behaviour.h" #include "mouse.h" #include "keyboard.h" #include "touchscreen.h" #include "about.h" #include "template.h" #include #include #include #include #include #include #include #include "environment.h" #include "find-themes.h" #include "log.h" #include "macros.h" #include "maindialog.h" #include "xml.h" MainDialog::MainDialog(QWidget *parent) : QDialog(parent) { QVBoxLayout *verticalLayout = new QVBoxLayout(this); verticalLayout->setContentsMargins(6, 6, 6, 6); QWidget *widget = new QWidget(this); QHBoxLayout *horizontalLayout = new QHBoxLayout(widget); horizontalLayout->setContentsMargins(6, 6, 6, 6); // List Widget on the Left QListWidget *list = new QListWidget(widget); QListWidgetItem *item0 = new QListWidgetItem(list); item0->setIcon(QIcon::fromTheme("applications-graphics")); item0->setText(tr("Appearance")); QListWidgetItem *item1 = new QListWidgetItem(list); item1->setIcon(QIcon::fromTheme("preferences-desktop")); item1->setText(tr("Behaviour")); QListWidgetItem *item2 = new QListWidgetItem(list); item2->setIcon(QIcon::fromTheme("input-mouse")); item2->setText(tr("Mouse & Touchpad")); QListWidgetItem *item3 = new QListWidgetItem(list); item3->setIcon(QIcon::fromTheme("preferences-desktop-keyboard")); item3->setText(tr("Keyboard")); QListWidgetItem *item4 = new QListWidgetItem(list); item4->setIcon(QIcon::fromTheme("preferences-desktop-touchscreen")); item4->setText(tr("Touchscreen")); QListWidgetItem *item5 = new QListWidgetItem(list); item5->setIcon(QIcon::fromTheme("help-about")); item5->setText(tr("About")); if (!qgetenv("LABWC_TWEAKS_SHOW_TEMPLATE").isEmpty()) { QListWidgetItem *item99 = new QListWidgetItem(list); item99->setIcon(QIcon::fromTheme("preferences-system")); item99->setText("Template"); } QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); sizePolicy.setHeightForWidth(list->sizePolicy().hasHeightForWidth()); list->setSizePolicy(sizePolicy); list->setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents); list->setCurrentRow(0); list->setFixedWidth(list->sizeHintForColumn(0) + 2 * list->frameWidth()); horizontalLayout->addWidget(list); // The stack containing all the pages QStackedWidget *stack = new QStackedWidget(widget); m_pageAppearance = new Appearance(); stack->addWidget(m_pageAppearance); m_pageBehaviour = new Behaviour(); stack->addWidget(m_pageBehaviour); m_pageMouse = new Mouse(); stack->addWidget(m_pageMouse); m_pageKeyboard = new Keyboard(); stack->addWidget(m_pageKeyboard); m_pageTouchscreen = new Touchscreen(); stack->addWidget(m_pageTouchscreen); m_pageAbout = new About(); stack->addWidget(m_pageAbout); if (!qgetenv("LABWC_TWEAKS_SHOW_TEMPLATE").isEmpty()) { m_pageTemplate = new Template(); stack->addWidget(m_pageTemplate); } horizontalLayout->addWidget(stack); verticalLayout->addWidget(widget); m_buttonBox = new QDialogButtonBox(this); m_buttonBox->setOrientation(Qt::Orientation::Horizontal); m_buttonBox->setStandardButtons(QDialogButtonBox::StandardButton::Apply | QDialogButtonBox::StandardButton::Close); m_buttonBox->setCenterButtons(false); verticalLayout->addWidget(m_buttonBox); // Change pages when list items are clicked QObject::connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int))); // Close Button QObject::connect(m_buttonBox, SIGNAL(rejected()), this, SLOT(reject())); // Apply Button QObject::connect(m_buttonBox, &QDialogButtonBox::clicked, [&](QAbstractButton *button) { if (m_buttonBox->standardButton(button) == QDialogButtonBox::Apply) { onApply(); } }); activate(); } MainDialog::~MainDialog() { xml_finish(); } // Init settings and setup UI widgets void MainDialog::activate() { m_pageAppearance->activate(); m_pageBehaviour->activate(); m_pageMouse->activate(); m_pageKeyboard->activate(); m_pageTouchscreen->activate(); m_pageAbout->loadInfo(); m_pageAbout->getEnv(); if (!qgetenv("LABWC_TWEAKS_SHOW_TEMPLATE").isEmpty()) { m_pageTemplate->activate(); } } void MainDialog::onApply() { m_pageAppearance->onApply(); m_pageBehaviour->onApply(); m_pageMouse->onApply(); m_pageKeyboard->onApply(); m_pageTouchscreen->onApply(); xml_save(); environmentSave(); /* reconfigure labwc */ if (!fork()) { execl("/bin/sh", "/bin/sh", "-c", "labwc -r", (void *)NULL); } } labwc-tweaks-0.1.0/src/maindialog.h000066400000000000000000000012341513773473700171610ustar00rootroot00000000000000#ifndef MAINDIALOG_H #define MAINDIALOG_H #include #include #include "settings.h" class Appearance; class Behaviour; class Mouse; class Keyboard; class Touchscreen; class About; class Template; class MainDialog : public QDialog { Q_OBJECT public: MainDialog(QWidget *parent = nullptr); ~MainDialog(); void activate(); private: void onApply(); QDialogButtonBox *m_buttonBox; Appearance *m_pageAppearance; Behaviour *m_pageBehaviour; Mouse *m_pageMouse; Keyboard *m_pageKeyboard; Touchscreen *m_pageTouchscreen; About *m_pageAbout; Template *m_pageTemplate; }; #endif // MAINDIALOG_H labwc-tweaks-0.1.0/src/mouse.cpp000066400000000000000000000223671513773473700165520ustar00rootroot00000000000000#include "mouse.h" #include "environment.h" #include "find-themes.h" #include "macros.h" #include "pair.h" #include "settings.h" #include "./ui_mouse.h" Mouse::Mouse(QWidget *parent) : QWidget(parent), ui(new Ui::pageMouse) { ui->setupUi(this); } Mouse::~Mouse() { delete ui; } void Mouse::activate() { /* Cursor Theme */ settingsAddEnvStr("XCURSOR_THEME", ""); QStringList cursorThemes = findIconThemes(LAB_ICON_THEME_TYPE_CURSOR); ui->cursorTheme->addItems(cursorThemes); ui->cursorTheme->setCurrentIndex(cursorThemes.indexOf(getStr("XCURSOR_THEME"))); /* Cursor Size */ settingsAddEnvInt("XCURSOR_SIZE", 24); ui->cursorSize->setValue(getInt("XCURSOR_SIZE")); /*~ * For libinput settings we pick the default described the libinput documents, although * recognise that this is not 100% consistent across all devices. We think that this approach * makes for the least amount of user-surprises and it seems consistent with how some big * established compositors handle this. * * The exception is tap-to-click, which labwc enables by default for historic reasons. * * Ref: * - https://wayland.freedesktop.org/libinput/doc/latest/configuration.html */ /* Natural Scroll */ settingsAddXmlBoo("/labwc_config/libinput/device/naturalScroll", false); ui->naturalScroll->setChecked(getBool("/labwc_config/libinput/device/naturalScroll")); /* Left Handed */ settingsAddXmlBoo("/labwc_config/libinput/device/leftHanded", false); ui->leftHanded->setChecked(getBool("/labwc_config/libinput/device/leftHanded")); /* Pointer Speed */ settingsAddXmlFlt("/labwc_config/libinput/device/pointerSpeed", 0.0f); ui->pointerSpeed->setValue(getFloat("/labwc_config/libinput/device/pointerSpeed")); /* Accel Profiles */ settingsAddXmlStr("/labwc_config/libinput/device/accelProfile", "adaptive"); QVector> profiles; profiles.append(QSharedPointer(new Pair("flat", tr("Flat")))); profiles.append(QSharedPointer(new Pair("adaptive", tr("Adaptive")))); QString current_profile = getStr("/labwc_config/libinput/device/accelProfile"); int profile_index = -1; foreach (auto profile, profiles) { ui->accelProfile->addItem(profile.get()->description(), QVariant(profile.get()->value())); ++profile_index; if (current_profile == profile.get()->value()) { ui->accelProfile->setCurrentIndex(profile_index); } } /* Tap to click */ settingsAddXmlBoo("/labwc_config/libinput/device/tap", true); ui->tap->setChecked(getBool("/labwc_config/libinput/device/tap")); /* Tap Button Map */ settingsAddXmlStr("/labwc_config/libinput/device/tapButtonMap", "lrm"); QVector> maps; maps.append(QSharedPointer(new Pair("lrm", tr("left-right-middle")))); maps.append(QSharedPointer(new Pair("lmr", tr("left-middle-right")))); QString current_map = getStr("/labwc_config/libinput/device/tapButtonMap"); int map_index = -1; foreach (auto map, maps) { ui->tapButtonMap->addItem(map.get()->description(), QVariant(map.get()->value())); ++map_index; if (current_map == map.get()->value()) { ui->tapButtonMap->setCurrentIndex(map_index); } } /* * Tap And Drag * * Most devices have tap-and-drag enabled by default. * * Ref: * - https://wayland.freedesktop.org/libinput/doc/latest/tapping.html#tapndrag */ settingsAddXmlBoo("/labwc_config/libinput/device/tapAndDrag", true); ui->tapAndDrag->setChecked(getBool("/labwc_config/libinput/device/tapAndDrag")); /* * Drag Lock * * We disable this when tapAndDrag is unchecked. */ settingsAddXmlBoo("/labwc_config/libinput/device/dragLock", false); ui->dragLock->setChecked(getBool("/labwc_config/libinput/device/dragLock")); ui->dragLock->setEnabled(ui->tapAndDrag->isChecked()); connect(ui->tapAndDrag, &QCheckBox::toggled, ui->dragLock, &QWidget::setEnabled); /* * Three Finger Drag * * Ref: * - https://wayland.freedesktop.org/libinput/doc/latest/drag-3fg.html#drag-3fg */ settingsAddXmlBoo("/labwc_config/libinput/device/threeFingerDrag", false); ui->threeFingerDrag->setChecked(getBool("/labwc_config/libinput/device/threeFingerDrag")); /* Middle Emulation */ settingsAddXmlBoo("/labwc_config/libinput/device/middleEmulation", false); ui->middleEmulation->setChecked(getBool("/labwc_config/libinput/device/middleEmulation")); /* Disable While Typing */ settingsAddXmlBoo("/labwc_config/libinput/device/disableWhileTyping", true); ui->disableWhileTyping->setChecked(getBool("/labwc_config/libinput/device/disableWhileTyping")); /* Click Method */ settingsAddXmlStr("/labwc_config/libinput/device/clickMethod", "none"); QVector> clickmethods; clickmethods.append(QSharedPointer(new Pair("none", tr("None")))); clickmethods.append(QSharedPointer(new Pair("buttonAreas", tr("Button Area")))); clickmethods.append(QSharedPointer(new Pair("clickFinger", tr("Clickfinger")))); QString current_clickmethod = getStr("/labwc_config/libinput/device/clickMethod"); int clickmethod_index = -1; foreach (auto clickmethod, clickmethods) { ui->clickMethod->addItem(clickmethod.get()->description(), QVariant(clickmethod.get()->value())); ++clickmethod_index; if (current_clickmethod == clickmethod.get()->value()) { ui->clickMethod->setCurrentIndex(clickmethod_index); } } /* Scroll Method */ settingsAddXmlStr("/labwc_config/libinput/device/scrollMethod", "twoFinger"); QVector> scrollmethods; scrollmethods.append(QSharedPointer(new Pair("twoFinger", tr("Two Finger")))); scrollmethods.append(QSharedPointer(new Pair("edge", tr("Edge")))); scrollmethods.append(QSharedPointer(new Pair("none", tr("None")))); QString current_scrollmethod = getStr("/labwc_config/libinput/device/scrollMethod"); int scrollmethod_index = -1; foreach (auto scrollmethod, scrollmethods) { ui->scrollMethod->addItem(scrollmethod.get()->description(), QVariant(scrollmethod.get()->value())); ++scrollmethod_index; if (current_scrollmethod == scrollmethod.get()->value()) { ui->scrollMethod->setCurrentIndex(scrollmethod_index); } } /* * Send Events Mode * * Note: We cannot support 'No' until the device="" option is supported because otherwise all * devices (including keyboard) will be disabled which is unlikely to be the desired outcome. */ settingsAddXmlStr("/labwc_config/libinput/device/sendEventsMode", "yes"); QVector> sendeventsmodes; sendeventsmodes.append(QSharedPointer(new Pair("yes", tr("Enabled")))); sendeventsmodes.append(QSharedPointer( new Pair("disabledOnExternalMouse", tr("Disable with external mouse")))); QString current_sendeventsmode = getStr("/labwc_config/libinput/device/sendEventsMode"); int sendeventsmode_index = -1; foreach (auto sendeventsmode, sendeventsmodes) { ui->sendEventsMode->addItem(sendeventsmode.get()->description(), QVariant(sendeventsmode.get()->value())); ++sendeventsmode_index; if (current_sendeventsmode == sendeventsmode.get()->value()) { ui->sendEventsMode->setCurrentIndex(sendeventsmode_index); } } /* Scroll Factor */ settingsAddXmlFlt("/labwc_config/libinput/device/scrollFactor", 1.0f); ui->scrollFactor->setValue(getFloat("/labwc_config/libinput/device/scrollFactor")); } void Mouse::onApply() { /* ~/.config/labwc/rc.xml */ setBool("/labwc_config/libinput/device/naturalScroll", ui->naturalScroll->isChecked()); setBool("/labwc_config/libinput/device/leftHanded", ui->leftHanded->isChecked()); setFloat("/labwc_config/libinput/device/pointerSpeed", ui->pointerSpeed->value() / 10.0); setStr("/labwc_config/libinput/device/accelProfile", DATA(ui->accelProfile)); setBool("/labwc_config/libinput/device/tap", ui->tap->isChecked()); setStr("/labwc_config/libinput/device/tapButtonMap", DATA(ui->tapButtonMap)); setBool("/labwc_config/libinput/device/tapAndDrag", ui->tapAndDrag->isChecked()); setBool("/labwc_config/libinput/device/dragLock", ui->dragLock->isChecked()); setBool("/labwc_config/libinput/device/threeFingerDrag", ui->threeFingerDrag->isChecked()); setBool("/labwc_config/libinput/device/middleEmulation", ui->middleEmulation->isChecked()); setBool("/labwc_config/libinput/device/disableWhileTyping", ui->disableWhileTyping->isChecked()); setStr("/labwc_config/libinput/device/clickMethod", DATA(ui->clickMethod)); setStr("/labwc_config/libinput/device/scrollMethod", DATA(ui->scrollMethod)); setStr("/labwc_config/libinput/device/sendEventsMode", DATA(ui->sendEventsMode)); setFloat("/labwc_config/libinput/device/scrollFactor", ui->scrollFactor->value()); /* ~/.config/labwc/environment */ setStr("XCURSOR_THEME", TEXT(ui->cursorTheme)); setInt("XCURSOR_SIZE", ui->cursorSize->value()); } labwc-tweaks-0.1.0/src/mouse.h000066400000000000000000000005041513773473700162040ustar00rootroot00000000000000#ifndef MOUSE_H #define MOUSE_H #include QT_BEGIN_NAMESPACE namespace Ui { class pageMouse; } QT_END_NAMESPACE class Mouse : public QWidget { Q_OBJECT public: Mouse(QWidget *parent = nullptr); ~Mouse(); void activate(); void onApply(); private: Ui::pageMouse *ui; }; #endif // MOUSE_H labwc-tweaks-0.1.0/src/mouse.ui000066400000000000000000000253171513773473700164030ustar00rootroot00000000000000 pageMouse QFrame::Shape::NoFrame true 9 Cursor 16 8 Theme Qt::Orientation::Horizontal Size Pointer General 16 8 Pointer speed -10 10 1 Qt::Orientation::Horizontal Qt::Orientation::Horizontal Acceleration profile Scroll factor 2 0.100000000000000 5.000000000000000 0.100000000000000 1.000000000000000 Natural scroll Left handed mode Touchpad 16 8 Status Qt::Orientation::Horizontal Tap button map Click method Scroll method 16 8 Tap to click true Tap and drag Qt::Orientation::Horizontal QSizePolicy::Policy::Fixed 8 1 Drag lock Qt::Orientation::Horizontal Three finger drag Middle button emulation Disable while typing Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/nodename.cpp000066400000000000000000000015641513773473700172040ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-only #include "nodename.h" #include #include #include #include #include #include static std::vector splitIgnoringEmptyParts(const std::string &s, char delim) { auto has_content = [](auto const &s) { return s.size() > 0; }; auto parts = s | std::views::split(delim) | std::views::filter(has_content) | std::ranges::to>(); return parts; } std::string nodenameFromXPath(std::string xpath) { auto parts = splitIgnoringEmptyParts(xpath, '/'); std::reverse(parts.begin(), parts.end()); std::string nodename; for (auto part : parts) { nodename.append(part); nodename.append("."); } if (!nodename.empty() && nodename.back() == '.') { nodename.pop_back(); } return nodename; } labwc-tweaks-0.1.0/src/nodename.h000066400000000000000000000002631513773473700166440ustar00rootroot00000000000000/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef __NODENAME_H #define __NODENAME_H #include std::string nodenameFromXPath(std::string xpath); #endif // __NODENAME_H labwc-tweaks-0.1.0/src/pair.h000066400000000000000000000005551513773473700160150ustar00rootroot00000000000000#pragma once #include class Pair { public: Pair(QString value, QString description) { m_value = value; m_description = description; }; ~Pair() { }; private: QString m_value; QString m_description; public: QString value() const { return m_value; } QString description() const { return m_description; } }; labwc-tweaks-0.1.0/src/parse-bool.cpp000066400000000000000000000012611513773473700174530ustar00rootroot00000000000000#include #include "log.h" #include "parse-bool.h" int parseBool(const char *str, int defaultValue) { if (!str) goto error_not_a_boolean; else if (!strcasecmp(str, "yes")) return 1; else if (!strcasecmp(str, "true")) return 1; else if (!strcasecmp(str, "on")) return 1; else if (!strcmp(str, "1")) return 1; else if (!strcasecmp(str, "no")) return 0; else if (!strcasecmp(str, "false")) return 0; else if (!strcasecmp(str, "off")) return 0; else if (!strcmp(str, "0")) return 0; error_not_a_boolean: warn("{} is not a boolean value", str); return defaultValue; } labwc-tweaks-0.1.0/src/parse-bool.h000066400000000000000000000005771513773473700171310ustar00rootroot00000000000000 #pragma once /** * parseBool() - Parse boolean value of string. * @string: String to interpret. This check is case-insensitive. * @default_value: Default value to use if string is not a recognised boolean. * Use -1 to avoid setting a default value. * * Return: 0 for false; 1 for true; -1 for non-boolean */ int parseBool(const char *str, int defaultValue); labwc-tweaks-0.1.0/src/setting.cpp000066400000000000000000000074471513773473700171010ustar00rootroot00000000000000#include #include #include "log.h" #include "settings.h" #include "environment.h" #include "macros.h" #include "nodename.h" #include "xml.h" bool isValidBool(int value) { return value != -1; } Setting::Setting(QString name, enum settingFileType fileType, enum settingValueType valueType, QVariant defaultValue) : m_name(name), m_fileType(fileType), m_valueType(valueType), m_value(defaultValue) { m_valueOrigin = LAB_VALUE_ORIGIN_DEFAULT; std::string nodename, truncatedXPath; if (m_fileType == LAB_FILE_TYPE_RCXML) { nodename = nodenameFromXPath(name.toStdString()); truncatedXPath = name.replace("/labwc_config", "").toStdString(); } // Use values from rc.xml if different from default if (m_fileType == LAB_FILE_TYPE_RCXML) { switch (m_valueType) { case LAB_VALUE_TYPE_STRING: { const char *value = xml_get(nodename.c_str()); if (value && QString::compare(value, m_value.toString(), Qt::CaseInsensitive)) { m_valueOrigin = LAB_VALUE_ORIGIN_USER_OVERRIDE; m_value = QString(value); info("from rc.xml use {}={}", truncatedXPath, value); } break; } case LAB_VALUE_TYPE_INT: { int value = xml_get_int(nodename.c_str()); if (value != LAB_INVALID && value != m_value.toInt()) { m_valueOrigin = LAB_VALUE_ORIGIN_USER_OVERRIDE; m_value = value; info("from rc.xml use {}={}", truncatedXPath, value); } break; } case LAB_VALUE_TYPE_FLOAT: { float value = xml_get_float(nodename.c_str()); if (value != LAB_INVALID && value != m_value.toFloat()) { m_valueOrigin = LAB_VALUE_ORIGIN_USER_OVERRIDE; m_value = value; info("from rc.xml use {}={}", truncatedXPath, value); } break; } case LAB_VALUE_TYPE_BOOL: { int value = xml_get_bool_text(nodename.c_str()); if (isValidBool(value) && value != m_value.toInt()) { m_valueOrigin = LAB_VALUE_ORIGIN_USER_OVERRIDE; m_value = value; info("from rc.xml use {}={}", truncatedXPath, value ? "true" : "false"); } break; } default: break; } } // Use values from environment file if different from default if (m_fileType == LAB_FILE_TYPE_ENVIRONMENT) { switch (m_valueType) { case LAB_VALUE_TYPE_STRING: { QString value = QString(environmentGet(m_name)); if (!value.isNull() && QString::compare(value, m_value.toString(), Qt::CaseInsensitive)) { m_valueOrigin = LAB_VALUE_ORIGIN_USER_OVERRIDE; m_value = value; info("from environment file use {}={}", m_name.toStdString(), value.toStdString()); } break; } case LAB_VALUE_TYPE_INT: { int value = environmentGetInt(m_name); if (value == -1) { // There was no environment file - or it did not contain the key break; } if (value != m_value.toInt()) { m_valueOrigin = LAB_VALUE_ORIGIN_USER_OVERRIDE; m_value = value; info("from environment file use {}={}", m_name.toStdString(), value); } break; } case LAB_VALUE_TYPE_BOOL: { // do we need this? break; } default: break; } } } void Setting::setValue(QVariant value) { if (value != m_value) { m_valueOrigin = LAB_VALUE_ORIGIN_CHANGED_IN_THIS_SESSION; m_value = value; } } labwc-tweaks-0.1.0/src/setting.h000066400000000000000000000023471513773473700165400ustar00rootroot00000000000000#pragma once #include #include #include #include enum settingFileType { LAB_FILE_TYPE_UNKNOWN = 0, LAB_FILE_TYPE_RCXML, LAB_FILE_TYPE_ENVIRONMENT, }; enum settingValueOrigin { LAB_VALUE_ORIGIN_UNKNOWN = 0, LAB_VALUE_ORIGIN_DEFAULT, LAB_VALUE_ORIGIN_USER_OVERRIDE, LAB_VALUE_ORIGIN_CHANGED_IN_THIS_SESSION, }; enum settingValueType { LAB_VALUE_TYPE_UNKNOWN = 0, LAB_VALUE_TYPE_INT, LAB_VALUE_TYPE_BOOL, LAB_VALUE_TYPE_STRING, LAB_VALUE_TYPE_FLOAT }; class Setting { public: Setting(QString name, enum settingFileType fileType, enum settingValueType valueType, QVariant defaultValue); void setValue(QVariant value); private: QString m_name; // xpath-style like /foo/bar/baz enum settingFileType m_fileType; enum settingValueOrigin m_valueOrigin; enum settingValueType m_valueType; QVariant m_value; public: // Getters QString name() const { return m_name; } enum settingFileType fileType() const { return m_fileType; } enum settingValueOrigin valueOrigin() const { return m_valueOrigin; } enum settingValueType valueType() const { return m_valueType; } QVariant value() const { return m_value; } }; labwc-tweaks-0.1.0/src/settings.cpp000066400000000000000000000172511513773473700172560ustar00rootroot00000000000000#include "settings.h" #include #include #include #include "log.h" #include "environment.h" #include "macros.h" #include "xml.h" #include "nodename.h" /*~ * We try not to deal with raw pointers, but keeping *settings in this translation unit just helps * not trickle it through to lots of QWidget derived classes. */ static std::vector> *_settings; static void add(QString name, enum settingFileType fileType, enum settingValueType valueType, QVariant defaultValue) { _settings->push_back(std::make_shared(name, fileType, valueType, defaultValue)); } // rc.xml config file helpers void settingsAddXmlStr(QString name, QString defaultValue) { add(name, LAB_FILE_TYPE_RCXML, LAB_VALUE_TYPE_STRING, defaultValue); } void settingsAddXmlInt(QString name, int defaultValue) { add(name, LAB_FILE_TYPE_RCXML, LAB_VALUE_TYPE_INT, defaultValue); } void settingsAddXmlBoo(QString name, bool defaultValue) { add(name, LAB_FILE_TYPE_RCXML, LAB_VALUE_TYPE_BOOL, defaultValue); } void settingsAddXmlFlt(QString name, float defaultValue) { add(name, LAB_FILE_TYPE_RCXML, LAB_VALUE_TYPE_FLOAT, defaultValue); } // environment file helpers void settingsAddEnvStr(QString name, QString defaultValue) { add(name, LAB_FILE_TYPE_ENVIRONMENT, LAB_VALUE_TYPE_STRING, defaultValue); } void settingsAddEnvInt(QString name, int defaultValue) { add(name, LAB_FILE_TYPE_ENVIRONMENT, LAB_VALUE_TYPE_INT, defaultValue); } void settingsInit(std::vector> *settings) { _settings = settings; } static std::shared_ptr retrieve(QString name) { for (auto &setting : *_settings) { if (name == setting->name()) { return setting; } } return nullptr; } QString getStr(QString name) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return nullptr; } if (setting->valueType() != LAB_VALUE_TYPE_STRING) { warn("not a valid string setting '{}'", name.toStdString()); return nullptr; } QString ret = setting->value().toString(); return ret; } int getInt(QString name) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return LAB_INVALID; } if (setting->valueType() != LAB_VALUE_TYPE_INT) { warn("not a valid int setting '{}'", name.toStdString()); return LAB_INVALID; } int ret = setting->value().toInt(); return ret; } /* Return -1 for error because this works well with setCurrentIndex() */ int getBool(QString name) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return -1; } if (setting->valueType() != LAB_VALUE_TYPE_BOOL) { warn("not a valid boolean setting '{}'", name.toStdString()); return LAB_INVALID; } int ret = setting->value().toInt(); return ret; } float getFloat(QString name) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return LAB_INVALID; } if (setting->valueType() != LAB_VALUE_TYPE_FLOAT) { warn("not a valid float setting '{}'", name.toStdString()); return LAB_INVALID; } float ret = setting->value().toFloat(); return ret; } /*~ * The setters below are for key=value pairs in "rc.xml" and "environment". More complex * configuration involving objects like `` cannot be managed through these. */ void setStr(QString name, QString value) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return; } if (setting->valueType() != LAB_VALUE_TYPE_STRING) { warn("not a valid string setting '{}'", name.toStdString()); return; } if (value == setting->value().toString()) { return; } switch (setting->fileType()) { case LAB_FILE_TYPE_RCXML: { xpath_add_node(name.toStdString().c_str()); std::string nodename = nodenameFromXPath(name.toStdString()); xml_set(nodename.c_str(), value.toStdString().c_str()); break; } case LAB_FILE_TYPE_ENVIRONMENT: environmentSet(name, value); break; case LAB_FILE_TYPE_UNKNOWN: default: warn("cannot handle file type associated with '{}'", name.toStdString()); } setting->setValue(value); info("'{} has changed to '{}'", name.toStdString(), value.toStdString()); } void setInt(QString name, int value) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return; } if (setting->valueType() != LAB_VALUE_TYPE_INT) { warn("not a valid int setting '{}'", name.toStdString()); return; } if (value == setting->value().toInt()) { return; } switch (setting->fileType()) { case LAB_FILE_TYPE_RCXML: { xpath_add_node(name.toStdString().c_str()); std::string nodename = nodenameFromXPath(name.toStdString()); xml_set_num(nodename.c_str(), value); break; } case LAB_FILE_TYPE_ENVIRONMENT: environmentSetInt(name, value); break; case LAB_FILE_TYPE_UNKNOWN: default: warn("cannot handle file type associated with '{}'", name.toStdString()); } setting->setValue(value); info("'{} has changed to '{}'", name.toStdString(), value); } void setBool(QString name, int value) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return; } if (setting->valueType() != LAB_VALUE_TYPE_BOOL) { warn("not a valid boolean setting '{}'", name.toStdString()); return; } if (value == setting->value().toInt()) { return; } switch (setting->fileType()) { case LAB_FILE_TYPE_RCXML: { xpath_add_node(name.toStdString().c_str()); std::string nodename = nodenameFromXPath(name.toStdString()); xml_set(nodename.c_str(), value ? "yes" : "no"); break; } case LAB_FILE_TYPE_ENVIRONMENT: environmentSetInt(name, value); break; case LAB_FILE_TYPE_UNKNOWN: default: warn("cannot handle file type associated with '{}'", name.toStdString()); } setting->setValue(value); info("'{} has changed to '{}'", name.toStdString(), value); } void setFloat(QString name, float value) { std::shared_ptr setting = retrieve(name); if (setting == nullptr) { warn("no setting with name '{}'", name.toStdString()); return; } if (setting->valueType() != LAB_VALUE_TYPE_FLOAT) { warn("not a valid float setting '{}'", name.toStdString()); return; } if (value == setting->value().toFloat()) { return; } switch (setting->fileType()) { case LAB_FILE_TYPE_RCXML: { xpath_add_node(name.toStdString().c_str()); std::string nodename = nodenameFromXPath(name.toStdString()); xml_set_num(nodename.c_str(), value); break; } case LAB_FILE_TYPE_ENVIRONMENT: warn("do not yet support setting floats in environment file"); break; case LAB_FILE_TYPE_UNKNOWN: default: warn("cannot handle file type associated with '{}'", name.toStdString()); } setting->setValue(value); info("'{} has changed to '{}'", name.toStdString(), value); } labwc-tweaks-0.1.0/src/settings.h000066400000000000000000000015621513773473700167210ustar00rootroot00000000000000#pragma once #include "settings.h" #include #include #include #include "setting.h" void settingsInit(std::vector> *settings); // Add new entries void settingsAddXmlStr(QString name, QString defaultValue); void settingsAddXmlInt(QString name, int defaultValue); void settingsAddXmlBoo(QString name, bool defaultValue); void settingsAddXmlFlt(QString name, float defaultValue); void settingsAddEnvStr(QString name, QString defaultValue); void settingsAddEnvInt(QString name, int defaultValue); // Get values QString getStr(QString name); int getInt(QString name); int getBool(QString name); float getFloat(QString name); // Set values for entries that already exist void setStr(QString name, QString value); void setInt(QString name, int value); void setBool(QString name, int value); void setFloat(QString name, float value); labwc-tweaks-0.1.0/src/template.cpp000066400000000000000000000016471513773473700172330ustar00rootroot00000000000000/*~ * This is a page template. It will not show when running the application normally, but can be * invoked by settings LABWC_TWEAKS_SHOW_TEMPLATE=1. It is intended as a starting point for * developers who wish to create pages. * * By page we mean list-stack pair. * * In addition to the constructor/destructor we require two methods: activate() and onApply(). * That's it. */ #include "template.h" #include #include "./ui_template.h" Template::Template(QWidget *parent) : QWidget(parent), ui(new Ui::pageTemplate) { ui->setupUi(this); } Template::~Template() { delete ui; } void Template::activate() { QStringList items = { "Foo", "Bar", "Baz" }; ui->comboBox->addItems(items); for (int i = 0; i < 100; ++i) { QString text = QString("Label ") + QString::number(i); ui->groupBox2_gridLayout->addWidget(new QLabel(text)); } } void Template::onApply() { // No-op } labwc-tweaks-0.1.0/src/template.h000066400000000000000000000005341513773473700166720ustar00rootroot00000000000000#ifndef TEMPLATE_H #define TEMPLATE_H #include QT_BEGIN_NAMESPACE namespace Ui { class pageTemplate; } QT_END_NAMESPACE class Template : public QWidget { Q_OBJECT public: Template(QWidget *parent = nullptr); ~Template(); void activate(); void onApply(); private: Ui::pageTemplate *ui; }; #endif // TEMPLATE_H labwc-tweaks-0.1.0/src/template.ui000066400000000000000000000126441513773473700170650ustar00rootroot00000000000000 pageTemplate QFrame::Shape::NoFrame true 9 GroupBox0 16 8 ComboBox Test Qt::Orientation::Horizontal ComboBox Test2 GroupBox1 16 8 Enable something special Qt::Orientation::Horizontal Qt::Orientation::Horizontal 8 1 Indented checkbox (state depends on parent) QCheckBox3 QCheckBox4 GroupBox2 Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/touchscreen.cpp000066400000000000000000000031531513773473700177340ustar00rootroot00000000000000#include "touchscreen.h" #include #include "macros.h" #include "pair.h" #include "settings.h" #include "./ui_touchscreen.h" Touchscreen::Touchscreen(QWidget *parent) : QWidget(parent), ui(new Ui::pageTouchscreen) { ui->setupUi(this); } Touchscreen::~Touchscreen() { delete ui; } void Touchscreen::activate() { /* Touchscreen Rotation */ settingsAddXmlStr("/labwc_config/libinput/device/calibrationMatrix", ""); QVector> calibrationmatrixes; calibrationmatrixes.append(QSharedPointer(new Pair("", tr("")))); calibrationmatrixes.append(QSharedPointer(new Pair("1 0 0 0 1 0", tr("Normal")))); calibrationmatrixes.append(QSharedPointer(new Pair("0 -1 1 1 0 0", tr("Left")))); calibrationmatrixes.append(QSharedPointer(new Pair("0 1 0 -1 0 1", tr("Right")))); calibrationmatrixes.append(QSharedPointer(new Pair("-1 0 1 0 -1 1", tr("Inverted")))); QString current_calibrationmatrix = getStr("/labwc_config/libinput/device/calibrationMatrix"); int calibrationmatrix_index = -1; foreach (auto calibrationmatrix, calibrationmatrixes) { ui->calibrationMatrix->addItem(calibrationmatrix.get()->description(), QVariant(calibrationmatrix.get()->value())); ++calibrationmatrix_index; if (current_calibrationmatrix == calibrationmatrix.get()->value()) { ui->calibrationMatrix->setCurrentIndex(calibrationmatrix_index); } } } void Touchscreen::onApply() { setStr("/labwc_config/libinput/device/calibrationMatrix", DATA(ui->calibrationMatrix)); } labwc-tweaks-0.1.0/src/touchscreen.h000066400000000000000000000005641513773473700174040ustar00rootroot00000000000000#ifndef TOUCHSCREEN_H #define TOUCHSCREEN_H #include QT_BEGIN_NAMESPACE namespace Ui { class pageTouchscreen; } QT_END_NAMESPACE class Touchscreen : public QWidget { Q_OBJECT public: Touchscreen(QWidget *parent = nullptr); ~Touchscreen(); void activate(); void onApply(); private: Ui::pageTouchscreen *ui; }; #endif // TOUCHSCREEN_H labwc-tweaks-0.1.0/src/touchscreen.ui000066400000000000000000000037671513773473700176020ustar00rootroot00000000000000 pageTouchscreen QFrame::Shape::NoFrame true 9 Touchscreen 16 8 Rotation Qt::Orientation::Horizontal Qt::Orientation::Vertical labwc-tweaks-0.1.0/src/xml.cpp000066400000000000000000000230211513773473700162060ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-only #define _POSIX_C_SOURCE 200809L #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "macros.h" #include "nodename.h" #include "parse-bool.h" #include "xml.h" enum xml_mode { XML_MODE_SETTING = 0, XML_MODE_GETTING, }; static struct ctx { char *filename; xmlDoc *doc; xmlXPathContextPtr xpath_ctx_ptr; const char *nodename; const char *value; xmlNode *node; enum xml_mode mode; } ctx; static void entry(xmlNode *node, char *nodename, char *content) { if (!nodename) return; if (!strcasecmp(nodename, ctx.nodename)) { if (ctx.mode == XML_MODE_SETTING) { xmlNodeSetContent(node, (const xmlChar *)ctx.value); } else if (ctx.mode == XML_MODE_GETTING) { ctx.value = (char *)content; ctx.node = node; } } } /** * nodename - return simplistic xpath style nodename * For example: is represented by nodename /a/b/c */ static char *nodename_xpath_style(xmlNode *node, char *buf, int len) { if (!node || !node->name) { return NULL; } /* Ignore superflous '/text' in node name */ if (node->parent && !strcmp((char *)node->name, "text")) { node = node->parent; } buf += len; *--buf = 0; len--; for (;;) { const char *name = (char *)node->name; int i = strlen(name); while (--i >= 0) { unsigned char c = name[i]; *--buf = tolower(c); if (!--len) return buf; } node = node->parent; if (!node || !node->name) { *--buf = '/'; return buf; } *--buf = '/'; if (!--len) return buf; } } /** * nodename - give xml node an ascii name * @node: xml-node * @buf: buffer to receive the name * @len: size of buffer * * For example, the xml structure would return the * name c.b.a */ static char *nodename(xmlNode *node, char *buf, int len) { if (!node || !node->name) { return NULL; } /* Ignore superfluous 'text.' in node name */ if (node->parent && !strcmp((char *)node->name, "text")) { node = node->parent; } char *p = buf; p[--len] = 0; for (;;) { const char *name = (char *)node->name; char c; while ((c = *name++) != 0) { *p++ = tolower(c); if (!--len) { return buf; } } *p = 0; node = node->parent; if (!node || !node->name) { return buf; } *p++ = '.'; if (!--len) { return buf; } } } static void process_node(xmlNode *node) { char *content; static char buffer[256]; char *name; content = (char *)node->content; if (xmlIsBlankNode(node)) { return; } name = nodename(node, buffer, sizeof(buffer)); entry(node, name, content); } static void xml_tree_walk(xmlNode *node); static void traverse(xmlNode *n) { process_node(n); for (xmlAttr *attr = n->properties; attr; attr = attr->next) { xml_tree_walk(attr->children); } xml_tree_walk(n->children); } static void xml_tree_walk(xmlNode *node) { for (xmlNode *n = node; n && n->name; n = n->next) { if (!strcasecmp((char *)n->name, "comment")) { continue; } traverse(n); } } static const char rcxml_template[] = "\n" "\n" " \n" " \n" "\n"; static void create_basic_rcxml(const char *filename) { FILE *file = fopen(filename, "w"); if (!file) { fprintf(stderr, "warn: cannot create file '%s'\n", filename); return; } if (!fwrite(rcxml_template, sizeof(rcxml_template) - 1, 1, file)) { fprintf(stderr, "warn: error writing to %s", filename); } fclose(file); } bool xml_init(const char *filename) { LIBXML_TEST_VERSION bool success = true; if (access(filename, F_OK)) { create_basic_rcxml(filename); } /* Use XML_PARSE_NOBLANKS for xmlSaveFormatFile() to indent properly */ ctx.filename = strdup(filename); ctx.doc = xmlReadFile(filename, NULL, XML_PARSE_NOBLANKS); if (!ctx.doc) { fprintf(stderr, "warn: xmlReadFile('%s')\n", filename); success = false; } ctx.xpath_ctx_ptr = xmlXPathNewContext(ctx.doc); if (!ctx.xpath_ctx_ptr) { fprintf(stderr, "warn: xmlXPathNewContext()\n"); xmlFreeDoc(ctx.doc); success = false; } return success; } void xml_save(void) { xmlSaveFormatFile(ctx.filename, ctx.doc, 1); } void xml_save_as(const char *filename) { xmlSaveFormatFile(filename, ctx.doc, 1); } void xml_finish(void) { xmlXPathFreeContext(ctx.xpath_ctx_ptr); xmlFreeDoc(ctx.doc); xmlCleanupParser(); free(ctx.filename); } void xml_set(const char *nodename, const char *value) { ctx.nodename = nodename; ctx.value = value; ctx.mode = XML_MODE_SETTING; xml_tree_walk(xmlDocGetRootElement(ctx.doc)); } void xml_set_num(const char *nodename, double value) { char buf[64]; snprintf(buf, sizeof(buf), "%g", value); ctx.nodename = nodename; ctx.value = buf; ctx.mode = XML_MODE_SETTING; xml_tree_walk(xmlDocGetRootElement(ctx.doc)); } const char *xml_get(const char *nodename) { ctx.value = NULL; ctx.nodename = nodename; ctx.mode = XML_MODE_GETTING; xml_tree_walk(xmlDocGetRootElement(ctx.doc)); return ctx.value; } int xml_get_int(const char *nodename) { ctx.value = NULL; ctx.nodename = nodename; ctx.mode = XML_MODE_GETTING; xml_tree_walk(xmlDocGetRootElement(ctx.doc)); return ctx.value ? atoi(ctx.value) : LAB_INVALID; } float xml_get_float(const char *nodename) { ctx.value = NULL; ctx.nodename = nodename; ctx.mode = XML_MODE_GETTING; xml_tree_walk(xmlDocGetRootElement(ctx.doc)); return ctx.value ? atof(ctx.value) : LAB_INVALID; } int xml_get_bool_text(const char *nodename) { const char *value = xml_get(nodename); /* handle and where no value has been specified */ if (!value || !*value) { return -1; } /* Parse consistently with labwc */ return parseBool(value, -1); } /* case-insensitive */ static xmlNode *xml_get_node(const char *xpath) { std::string nodename = nodenameFromXPath(xpath); ctx.node = NULL; ctx.nodename = nodename.c_str(); ctx.mode = XML_MODE_GETTING; xml_tree_walk(xmlDocGetRootElement(ctx.doc)); return ctx.node; } char *xpath_get_content(const char *xpath_expr) { xmlChar *ret = NULL; xmlXPathObjectPtr object = xmlXPathEvalExpression((xmlChar *)xpath_expr, ctx.xpath_ctx_ptr); if (!object) { fprintf(stderr, "warn: xmlXPathEvalExpression()\n"); return NULL; } if (!object->nodesetval) { fprintf(stderr, "warn: no nodesetval\n"); goto out; } for (int i = 0; i < object->nodesetval->nodeNr; i++) { if (!object->nodesetval->nodeTab[i]) { continue; } /* Just grab the first node and go */ ret = xmlNodeGetContent(object->nodesetval->nodeTab[i]); goto out; /* * We could process the node here and do things like: * xmlNode *children = object->nodesetval->nodeTab[i]->children; * for (xmlNode *cur = children; cur; cur = cur->next) { } */ } out: xmlXPathFreeObject(object); return (char *)ret; } /* case-sensitive */ static xmlNode *xpath_get_node(xmlChar *expr) { xmlNode *ret = NULL; xmlXPathObjectPtr object = xmlXPathEvalExpression(expr, ctx.xpath_ctx_ptr); if (!object) { fprintf(stderr, "warn: xmlXPathEvalExpression()\n"); return NULL; } if (!object->nodesetval) { fprintf(stderr, "warn: no nodesetval\n"); goto out2; } for (int i = 0; i < object->nodesetval->nodeNr; i++) { if (!object->nodesetval->nodeTab[i]) { continue; } ret = object->nodesetval->nodeTab[i]; break; } out2: xmlXPathFreeObject(object); return ret; } void xpath_add_node(const char *xpath_expr) { // Do not add another entry if the only difference is capitalisation if (xml_get_node(xpath_expr)) { return; } /* find existing parent */ char *parent_expr = strdup(xpath_expr); xmlNode *parent_node = NULL; while (parent_expr && *parent_expr) { parent_node = xpath_get_node((xmlChar *)parent_expr); if (parent_node) { break; } char *p = strrchr(parent_expr, '/'); if (p && *p) { *p = '\0'; } else { break; } } assert(parent_expr); if (!*parent_expr) { /* the whole xpath expression is new, so add to root */ parent_node = xmlDocGetRootElement(ctx.doc); } /* add new nodes */ gchar **nodes = g_strsplit(xpath_expr + strlen(parent_expr), "/", -1); for (gchar **s = nodes; *s; s++) { if (*s && **s) { parent_node = xmlNewChild(parent_node, NULL, (xmlChar *)*s, NULL); } } g_free(parent_expr); g_strfreev(nodes); } labwc-tweaks-0.1.0/src/xml.h000066400000000000000000000016241513773473700156600ustar00rootroot00000000000000/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef __XML_H #define __XML_H bool xml_init(const char *filename); void xml_save(void); void xml_save_as(const char *filename); void xml_finish(void); void xml_set(const char *nodename, const char *value); void xml_set_num(const char *nodename, double value); const char *xml_get(const char *nodename); int xml_get_int(const char *nodename); int xml_get_bool_text(const char *nodename); float xml_get_float(const char *nodename); /** * xpath_get_content() - Get content of node specified by xpath * @xpath_expr: xpath expression for node */ char *xpath_get_content(const char *xpath_expr); /** * xpath_add_node - add xml nodes from xpath * @xpath_expr: xpath expression for new node * For example xpath_expr="/labwc_config/a/b/c" creates * */ void xpath_add_node(const char *xpath_expr); #endif /* __XML_H */ labwc-tweaks-0.1.0/tests/000077500000000000000000000000001513773473700152575ustar00rootroot00000000000000labwc-tweaks-0.1.0/tests/t1000-add-xpath-node.cpp000066400000000000000000000052601513773473700213250ustar00rootroot00000000000000#define _POSIX_C_SOURCE 200809L #include #include #include #include #include "tap.h" #include "../src/xml.h" static char base_instance[] = "\n" "\n" " \n" " \n" " \n" "\n"; void show_diff(const char *filename, const char *buf, size_t size) { char cmd[1000]; snprintf(cmd, sizeof(cmd), "diff -u - %s >&2", filename); FILE *f = popen(cmd, "w"); fwrite(buf, size, 1, f); pclose(f); } void test(const char *filename, const char *expect) { gsize length; gchar *actual; g_file_get_contents(filename, &actual, &length, NULL); bool is_equal = strcmp(actual, expect) == 0; ok1(is_equal); if (!is_equal) show_diff(filename, expect, strlen(expect)); g_free(actual); } int main(int argc, char **argv) { char in[] = "/tmp/t1000-expect_XXXXXX"; char out[] = "/tmp/t1000-actual"; plan(4); int fd = mkstemp(in); if (fd < 0) exit(EXIT_FAILURE); (void)write(fd, base_instance, sizeof(base_instance) - 1); /* test 1 */ diag("add node using xpath (lowercase)"); xml_init(in); xpath_add_node("/labwc_config/theme/cornerradius"); xml_save_as(out); xml_finish(); test(out, "\n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n"); /* test 2 */ diag("add node using xpath (camelCase)"); xml_init(in); xpath_add_node("/labwc_config/theme/cornerRadius"); xml_save_as(out); xml_finish(); test(out, "\n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n"); /* test 3 */ diag("check xpath does not add duplicate entries - when identical"); xml_init(in); xpath_add_node("/labwc_config/theme/cornerradius"); xpath_add_node("/labwc_config/theme/cornerradius"); xml_save_as(out); xml_finish(); test(out, "\n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n"); /* test 4 */ diag("check xpath does not add duplicate entries - even if they have differing capitalisation"); xml_init(in); xpath_add_node("/labwc_config/theme/cornerradius"); xpath_add_node("/labwc_config/theme/Cornerradius"); xml_save_as(out); xml_finish(); test(out, "\n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n"); unlink(in); unlink(out); return exit_status(); } labwc-tweaks-0.1.0/tests/t1001-nodenames.cpp000066400000000000000000000017741513773473700205100ustar00rootroot00000000000000#define _POSIX_C_SOURCE 200809L #include #include #include #include #include "tap.h" #include "../src/xml.cpp" static char base_instance[] = "\n" "\n" " \n" " \n" " \n" "\n"; void test(const char *nodename, const char *expect) { bool is_equal = strcmp(nodename, expect) == 0; ok1(is_equal); if (!is_equal) fprintf(stderr, "%s\n%s\n", nodename, expect); } int main(int argc, char **argv) { char in[] = "/tmp/t1001-expect_XXXXXX"; static char buffer[256] = { 0 }; plan(1); int fd = mkstemp(in); if (fd < 0) exit(EXIT_FAILURE); (void)write(fd, base_instance, sizeof(base_instance) - 1); /* test 1 */ diag("generate simple xpath style nodename"); xml_init(in); xmlNode *node = xpath_get_node((xmlChar *)"/labwc_config/core/gap"); char *name = nodename(node, buffer, sizeof(buffer)); xml_finish(); test(name, "gap.core.labwc_config"); unlink(in); return exit_status(); } labwc-tweaks-0.1.0/tests/tap.cpp000066400000000000000000000024301513773473700165460ustar00rootroot00000000000000#include #include #include #include #include #include #include "tap.h" static int nr_tests_run; static int nr_tests_expected; static int nr_tests_failed; void plan(int nr_tests) { static bool run_once; if (run_once) return; run_once = true; printf("1..%d\n", nr_tests); nr_tests_expected = nr_tests; } void diag(const char *fmt, ...) { va_list params; fprintf(stdout, "# "); va_start(params, fmt); vfprintf(stdout, fmt, params); va_end(params); fprintf(stdout, "\n"); } int ok(int result, const char *testname, ...) { va_list params; ++nr_tests_run; if (!result) { printf("not "); nr_tests_failed++; } printf("ok %d", nr_tests_run); if (testname) { printf(" - "); va_start(params, testname); vfprintf(stdout, testname, params); va_end(params); } printf("\n"); if (!result) diag(" Failed test"); return result ? 1 : 0; } int exit_status(void) { int ret; if (nr_tests_expected != nr_tests_run) { diag("expected=%d; run=%d; failed=%d", nr_tests_expected, nr_tests_run, nr_tests_failed); } if (nr_tests_expected < nr_tests_run) ret = nr_tests_run - nr_tests_expected; else ret = nr_tests_failed + nr_tests_expected - nr_tests_run; if (ret > 255) ret = 255; return ret; } labwc-tweaks-0.1.0/tests/tap.h000066400000000000000000000004621513773473700162160ustar00rootroot00000000000000/* * Minimalist, partial TAP implementation * * Copyright Johan Malm 2020 */ #ifndef TAP_H #define TAP_H #define ok1(__x__) (ok(__x__, "%s", #__x__)) void plan(int nr_tests); void diag(const char *fmt, ...); int ok(int result, const char *test_name, ...); int exit_status(void); #endif /* TAP_H */