Metadata-Version: 2.1
Name: miceless
Version: 1.0.0
Summary: Hotkeys for mouse click events.
Home-page: https://github.com/akademi4eg/miceless
Maintainer: Dmytro Tkanov
Maintainer-email: akademi4eg@gmail.com
License: Apache License 2.0
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: End Users/Desktop
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown
Requires-Dist: pynput (==1.4)

# MiceLess
Utitlity that helps binding keyboard shortcuts for some of the operations that you do with mouse.

## Usecase
Primary usecase that this tool was written for is switching focus between windows on different monitors.
In some cases, e.g. multiple desktops, simple `Alt-TAB` wont help,
because it would either switch you to latest used app or would require you to press this combo several times,
until you reach target window. With this tool you can configure shortcuts so that, for example, `Ctrl-Alt-1` would
set window in left monitor in focus and `Ctrl+Alt+2` would set focus for window in right monitor.

## Installation
Via PIP:
```bash
pip install miceless
```
To run the app, execute:
```python3
python3 -m miceless.run
```


## Manual
MiceLess stores a mapping between key-combos and sequences of mouse clicks.
App config would be stored in home folder in `.miceless` file.
The app should work anywhere where `pynput` works, yet it has been tested only on Ubuntu with X server.

### Modes
The tool has two operation modes: **recording** and **playback**. You can switch between modes by pressing `Ctrl+Alt+~`.

### Recording
While in **recording** mode, `Ctrl-Alt-<key>` combo would **append** click in current mouse location to the list 
of events for a given combo. Pressing special combination `Ctrl+Alt+0` would clear events list for last used key combo.

### Playback
In playback mode pressing `Ctrl+Alt+<key>` combo would invoke a sequence of events stored for that combination.

## Known issues
* Playback clicks are executed with `Ctrl+Alt` pressed, because all combos have these keys in them.
This might be a problem for some applications.
* There might be collisions with app-specific hotkeys that would result in not desired firings of event sequences.
* Events capture is based on `pynput` which in turn uses `Xlib`, thus there might be issues in non-X environments,
e.g. in Wayland.


