Focus Follows Mouse for Windows.
masir is a focus follows mouse daemon for Microsoft Windows 11 and above.
masir allows you to focus an application window by moving your mouse over it, without requiring mouse clicks or touchpad taps.
masir does not have a dependency on any specific external software or tiling window manager.
masir has an additional integration with komorebi to ensure that only windows managed by the tiling window manager are eligible to be focused. Integrations with other tiling window managers are welcome ("Integrations".)
masir is a free and educational source project, and one that encourages you to make charitable donations if you find the software to be useful and have the financial means.
I encourage you to make a charitable donation to the Palestine Children's Relief Fund or contributing to a Gaza Funds campaign before you consider sponsoring me on GitHub.
GitHub Sponsors is enabled for this project. Unfortunately I don't have anything specific to offer besides my gratitude and shout outs at the end of komorebi live development videos and tutorials.
If you would like to tip or sponsor the project but are unable to use GitHub Sponsors, you may also sponsor through Ko-fi.
While package submissions to scoop
and winget
are pending, you can install masir
using cargo
:
cargo install --git https://github.com/LGUG2Z/masir
If you would like to contribute to masir
please take the time to carefully read the guidelines below.
- Flatten all
use
statements - Run
cargo +stable clippy
and ensure that all lints and suggestions have been addressed before committing - Run
cargo +nightly fmt --all
to ensure consistent formatting before committing - Use
git cz
with the Commitizen CLI to prepare commit messages - Provide at least one short sentence or paragraph in your commit message body to describe your thought process for the changes being committed
masir
is licensed under the Komorebi 1.0.0 license, which
is a fork of the PolyForm Strict 1.0.0
license. On a high level
this means that you are free to do whatever you want with masir
for
personal use other than redistribution, or distribution of new works (i.e.
hard-forks) based on the software.
Anyone is free to make their own fork of masir
with changes intended
either for personal use or for integration back upstream via pull requests.
The Komorebi 1.0.0 License does not permit any kind of commercial use.
Contributions are accepted with the following understanding:
- Contributed content is licensed under the terms of the 0-BSD license
- Contributors accept the terms of the project license at the time of contribution
By making a contribution, you accept both the current project license terms, and that all contributions that you have made are provided under the terms of the 0-BSD license.
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
If you would like to create an integration between masir and a tiling window manager, there is only one requirement:
- An updated list of window HWNDs known to and managed by the tiling window manager written to a file in a known location.
The path to this file of HWNDs can be passed with the --hwnds
flag for testing purposes.
masir will check for the presence of the HWND under the mouse cursor in this file when deciding if the window is eligible to be focused.
Once testing is complete, native support for checking this file without requiring the --hwnds
argument can be added
directly to masir
(see TODO: We can add checks for other window managers here
in main.rs
).