{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: X11 Applications", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "# MiceLess\nUtitlity that helps binding keyboard shortcuts for some of the operations that you do with mouse.\n\n## Usecase\nPrimary usecase that this tool was written for is switching focus between windows on different monitors.\nIn some cases, e.g. multiple desktops, simple `Alt-TAB` wont help,\nbecause it would either switch you to latest used app or would require you to press this combo several times,\nuntil you reach target window. With this tool you can configure shortcuts so that, for example, `Ctrl-Alt-1` would\nset window in left monitor in focus and `Ctrl+Alt+2` would set focus for window in right monitor.\n\n## Installation\nVia PIP:\n```bash\npip install miceless\n```\nTo run the app, execute:\n```python3\npython3 -m miceless.run\n```\n\n\n## Manual\nMiceLess stores a mapping between key-combos and sequences of mouse clicks.\nApp config would be stored in home folder in `.miceless` file.\nThe app should work anywhere where `pynput` works, yet it has been tested only on Ubuntu with X server.\n\n### Modes\nThe tool has two operation modes: **recording** and **playback**. You can switch between modes by pressing `Ctrl+Alt+~`.\n\n### Recording\nWhile in **recording** mode, `Ctrl-Alt-` combo would **append** click in current mouse location to the list \nof events for a given combo. Pressing special combination `Ctrl+Alt+0` would clear events list for last used key combo.\n\n### Playback\nIn playback mode pressing `Ctrl+Alt+` combo would invoke a sequence of events stored for that combination.\n\n## Known issues\n* Playback clicks are executed with `Ctrl+Alt` pressed, because all combos have these keys in them.\nThis might be a problem for some applications.\n* There might be collisions with app-specific hotkeys that would result in not desired firings of event sequences.\n* Events capture is based on `pynput` which in turn uses `Xlib`, thus there might be issues in non-X environments,\ne.g. in Wayland.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/akademi4eg/miceless", "keywords": "", "license": "Apache License 2.0", "maintainer": "Dmytro Tkanov", "maintainer_email": "akademi4eg@gmail.com", "name": "miceless", "package_url": "https://pypi.org/project/miceless/", "platform": "", "project_url": "https://pypi.org/project/miceless/", "project_urls": { "Homepage": "https://github.com/akademi4eg/miceless" }, "release_url": "https://pypi.org/project/miceless/1.0.0/", "requires_dist": [ "pynput (==1.4)" ], "requires_python": "", "summary": "Hotkeys for mouse click events.", "version": "1.0.0" }, "last_serial": 4953452, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "5b48e1b9df4e46033896624b0a9955c8", "sha256": "26c7129e27be21980e60463f67c226d2a29af9dd46c044981929a7e9f8f5899f" }, "downloads": -1, "filename": "miceless-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5b48e1b9df4e46033896624b0a9955c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7867, "upload_time": "2019-03-18T10:59:30", "url": "https://files.pythonhosted.org/packages/72/03/fe9158d647ecf09220debbd1d30d7ee3ab9bc0dc073a0b3ebda71e28b164/miceless-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2247484b3db30f460865c89ac85dde8", "sha256": "90c7eddef4d2abf97bfbccc1e0162d1841cf04e4306179a15327d245f72a0c9c" }, "downloads": -1, "filename": "miceless-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b2247484b3db30f460865c89ac85dde8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3315, "upload_time": "2019-03-18T10:59:32", "url": "https://files.pythonhosted.org/packages/64/e5/62c0584c17c157b76036f65eed3ba48474e5278da607640aaa65f160c276/miceless-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5b48e1b9df4e46033896624b0a9955c8", "sha256": "26c7129e27be21980e60463f67c226d2a29af9dd46c044981929a7e9f8f5899f" }, "downloads": -1, "filename": "miceless-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5b48e1b9df4e46033896624b0a9955c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7867, "upload_time": "2019-03-18T10:59:30", "url": "https://files.pythonhosted.org/packages/72/03/fe9158d647ecf09220debbd1d30d7ee3ab9bc0dc073a0b3ebda71e28b164/miceless-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2247484b3db30f460865c89ac85dde8", "sha256": "90c7eddef4d2abf97bfbccc1e0162d1841cf04e4306179a15327d245f72a0c9c" }, "downloads": -1, "filename": "miceless-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b2247484b3db30f460865c89ac85dde8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3315, "upload_time": "2019-03-18T10:59:32", "url": "https://files.pythonhosted.org/packages/64/e5/62c0584c17c157b76036f65eed3ba48474e5278da607640aaa65f160c276/miceless-1.0.0.tar.gz" } ] }