Awesome
<!-- markdownlint-disable --> <div id="top"></div> <div align="center"> <a href="https://github.com/Serpentiel/betterglobekey/graphs/contributors"> <img src="https://img.shields.io/github/contributors/Serpentiel/betterglobekey.svg?style=for-the-badge" alt="Contributors" height="28"> </a> <a href="https://github.com/Serpentiel/betterglobekey/network/members"> <img src="https://img.shields.io/github/forks/Serpentiel/betterglobekey.svg?style=for-the-badge" alt="Forks" height="28"> </a> <a href="https://github.com/Serpentiel/betterglobekey/stargazers"> <img src="https://img.shields.io/github/stars/Serpentiel/betterglobekey.svg?style=for-the-badge" alt="Stars" height="28"> </a> <a href="https://github.com/Serpentiel/betterglobekey/issues"> <img src="https://img.shields.io/github/issues/Serpentiel/betterglobekey.svg?style=for-the-badge" alt="Issues" height="28"> </a> <a href="https://github.com/Serpentiel/betterglobekey/blob/main/LICENSE.md"> <img src="https://img.shields.io/github/license/Serpentiel/betterglobekey.svg?style=for-the-badge" alt="License" height="28"> </a> <br> <br> <a href="https://github.com/Serpentiel/betterglobekey"> <img src="https://github.com/Serpentiel/betterglobekey/blob/repo-assets/README.md/logo.png" alt="Logo" width="427" height="256"> </a> <h3>betterglobekey</h3> <p>Make macOS Globe key great again!</p> <br> <br> <p> <a href="https://github.com/Serpentiel/betterglobekey/issues/new?labels=question&template=01_question.md">Ask a Question</a> • <a href="https://github.com/Serpentiel/betterglobekey/issues/new?labels=bug&template=02_bug.md">Report a Bug</a> • <a href="https://github.com/Serpentiel/betterglobekey/issues/new?labels=enhancement&template=03_feature.md">Request a Feature</a> </p> </div> <details> <summary>Table of Contents</summary> <ul> <li> <a href="#about-the-project">1. About this Project</a> </li> <li> <a href="#getting-started">2. Getting Started</a> <ul> <li> <a href="#prerequisites">2.1. Prerequisites</a> </li> <li> <a href="#setting-it-up">2.2. Setting It Up</a> </li> </ul> </li> <li> <a href="#contributing">3. Contributing</a> </li> <li> <a href="#license">4. License</a> </li> </ul> </details> <!-- markdownlint-restore -->About the Project
macOS features a brilliant idea for the way to switch your keyboard's input source—the Globe key. While the idea is brilliant in design, in practice, however, the key is coded in a very intrusive and impractical way, which might prevent some users—especially those who tend to switch their input source often—from enjoying their overall user experience.
This utility completely reworks the way the Globe key functions and provides users with an improved overall user experience, and I sincerely hope that one day Apple is going to make it this way out-of-box.
<!-- markdownlint-disable --> <p align="right"><a href="#top">(back to top)</a></p> <!-- markdownlint-restore -->Getting Started
The utility enhances the functionality of the Globe key by introducing two distinct modes of operation and starting from the currently active input source:
-
Single Press Mode
Single press mode is activated when the Globe key is pressed once.
In this mode, the utility cycles through a collection of input sources. Each press of the Globe key switches to the next input source within the current collection.
The collections of input sources are defined in the configuration under
input_sources
. Each key-value pair within this map represents a named collection of input sources. For example:input_sources: foo: - com.apple.keylayout.US - com.apple.keylayout.Russian bar: - com.apple.keylayout.Finnish - com.apple.keylayout.Ukrainian-PC - com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese
Upon initialization, the utility determines the current active input source and starts from that particular source within its respective collection.
-
Double Press Mode
Double press mode is activated when the Globe key is double-pressed.
In this mode, the utility switches between different collections of input sources. Each double press of the Globe key cycles to the next collection in the configuration.
The maximum time interval between the first and second press that is considered a double press can be configured in the
double_press.maximum_delay
property. This delay is specified in milliseconds.
These enhancements aim to provide a more versatile and user-friendly experience for managing multiple input sources, especially for users who frequently switch between different languages or keyboard layouts.
See our wiki for more information on how to set up and configure the utility.
<!-- markdownlint-disable --> <p align="right"><a href="#top">(back to top)</a></p> <!-- markdownlint-restore -->Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create, so any contributions you make are greatly appreciated.
If you would like to contribute, please make sure to take a look at this guideline beforehand.
Please see our security policy to report any possible vulnerabilities or serious issues.
<!-- markdownlint-disable --> <p align="right"><a href="#top">(back to top)</a></p> <!-- markdownlint-restore -->License
Distributed under the MIT License. See
LICENSE.md
for more information.
<!-- markdownlint-disable --> <p align="right"><a href="#top">(back to top)</a></p> <!-- markdownlint-restore -->N.B. This project explicitly does not requires its contributors to sign a Contributor License Agreement nor does it posses one.