MCPcopy Index your code
hub / github.com/LGUG2Z/masir

github.com/LGUG2Z/masir @v0.1.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.2 ↗ · + Follow
18 symbols 35 edges 1 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

masir

Focus Follows Mouse for Windows.

Tech for Palestine GitHub Workflow Status GitHub all releases GitHub commits since latest release (by date) for a branch Discord GitHub Sponsors Ko-fi Notado Feed YouTube

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.

Installation

While package submissions to scoop and winget are pending, you can install masir using cargo:

cargo install --git https://github.com/LGUG2Z/masir

Contribution Guidelines

If you would like to contribute to masir please take the time to carefully read the guidelines below.

Commit hygiene

  • 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

License

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.

Contribution licensing

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.

Zero-Clause BSD

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.

Integrations

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).

Extension points exported contracts — how you extend this code

ProcessWindowsCrateResult (Interface)
(no doc) [1 implementers]
src/main.rs

Core symbols most depended-on inside this repo

process
called by 5
src/main.rs
has_match
called by 4
src/main.rs
has_filtered_style
called by 2
src/main.rs
real_window_class_w
called by 2
src/main.rs
listen_for_movements
called by 1
src/main.rs
get_window_ex_style
called by 1
src/main.rs
get_ancestor
called by 1
src/main.rs
window_from_point
called by 1
src/main.rs

Shape

Function 12
Enum 2
Method 2
Class 1
Interface 1

Languages

Rust100%

Modules by API surface

src/main.rs18 symbols

For agents

$ claude mcp add masir \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page