{ "info": { "author": "Riley Martine", "author_email": "riley.martine.0@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: X11 Applications", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: Unix", "Programming Language :: Python :: 3.6", "Topic :: Desktop Environment :: Window Managers" ], "description": "Pystiler (a PYthon Simple TILER)\n================================\n\n.. image:: https://api.codacy.com/project/badge/Grade/d1f80616b8344a3d84de1016defae26d\n :target: https://www.codacy.com/app/rmartine/pyst?utm_source=github.com&utm_medium=referral&utm_content=riley-martine/pyst&utm_campaign=Badge_Grade\n\n.. image:: https://badge.fury.io/py/pystiler.svg\n :target: https://badge.fury.io/py/pystiler\n\n\nThe goal of this project is to be able to define tiled workspaces and\nopen them with ease on non-tiling wms.\n\nThis is a simple python script which wraps wmctrl to allow for easier\ntiling.\n\nBind it to a key or to autowhatever-on-window-creation-hook, create scripts to setup a workspace, or make aliases to quickly move terminals.\n\nOriginally a fork of github.com/TheWanderer/stiler, but has diverged to the point of countaining almost none of the original code.\n\n\nInstall\n~~~~~~~\nInstall with \n\n:: \n\n pip3 install pystiler\n\n\nUsage\n~~~~~~\nYou can use the pyst tool to move the active window.\n\nRun simple commands with\n\n::\n\n pyst move \n\n\nCurrently arguments are left, right, top, bottom, top\\_left, bottom\\_left, top\\_right, bottom\\_right, and maximize, all of which do pretty much what you'd expect to the active window.\n\n\nRun more complex commands with\n\n::\n\n pyst explicit \n\n\neg.\n\n::\n\n pyst explicit 2 3 2 2 1 2\n\ndefines a screen grid of dimensions 2 rows, 3 columns, and resizes the active window to fill the second column only, first through second row. (so, the window would now occupy the center vertical third of the screen) \n\nand\n\n::\n \n pyst explicit 3 2 1 2 1 2\n\ndefines a screen grid of 3 rows, 2 columns, and resizes the active window to fill the first through second row of the first through second column (the top 2/3 of the screen)\n\n\nWorkspacing\n~~~~~~~~~~~\nUsing this script, you can define and run workspace configs. Workspace configs allow you to set up worksapces where certain applications are opened in positions on the screen.\n\nPystiler looks for ~/.pystiler.ini for the config file. It uses configparser to parse it. You can generate an example config by running ``pyst workspace-example``. There are three types of config modes:\n\n- simple, where the application (and optionally, directory) is the same every time, but the locations are different\n- specific, where there may be more than one application, and the directories might be different\n- explicit, where you can use non-named locations using the explicit api.\n\nStart a workspace with ``pyst workspace $workspacename``\n\nCurrently, terminaldir does nothing. This is on the todo list.\n\n\n\nAliases\n~~~~~~~\nHere's some nice aliases for use in terminals:\n\n::\n\n alias l='pyst move left'\n alias r='pyst move right' # override r builtin\n alias tl='pyst move top_left'\n alias tr='pyst move top_right' # override tr builtin\n alias bl='pyst move bottom_left'\n alias br='pyst move bottom_right'\n alias m='pyst move maximize'\n alias t='pyst move top'\n alias b='pyst move bottom'\n alias ws='pyst workspace'\n function wso {\n \tpyst workspace $1\n \texit\n }\n \n\n\n\nTodos for the project\n~~~~~~~~~~~~~~~~~~~~~\n\n- [x] Add top and bottom targets\n- [x] Add [top,bottom][left,right] targets\n- [x] Add simple CLI interface\n- [x] Add simple test cases\n- [x] Make nice python package\n- [x] Add simple workspace config\n- [x] Add complex workspace config\n- [ ] Allow passing arguments to workspace config\n- [ ] Add coverage\n- [ ] Use logging instead of debug flag\n- [ ] Add tests for window resizing\n- [ ] Make explicit api nicer\n- [ ] Find out why cols and rows reverse and fix it\n- [ ] Find out what's causing wmctrl to misfire on second call\n- [ ] Find out what bug fixes others have done\n- [ ] Map out final goals of project\n- [ ] Make list of already-resized window IDs to mitigate the resizing\n problem\n- [ ] Figure out async loading for workspaces\n- [ ] Add code quality review", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/riley-martine/pyst", "keywords": "window-manager tiling wm command-line cli", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pystiler", "package_url": "https://pypi.org/project/pystiler/", "platform": "", "project_url": "https://pypi.org/project/pystiler/", "project_urls": { "Homepage": "http://github.com/riley-martine/pyst" }, "release_url": "https://pypi.org/project/pystiler/0.4.1/", "requires_dist": null, "requires_python": "", "summary": "Python simple tiler for non-tiling window managers", "version": "0.4.1" }, "last_serial": 3455015, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "229aa78bf633c4ea0d6ee50abb312215", "sha256": "52fdd80f8fb8b11406abff8019edcffff474ad843a9ebc70ab9a5ad3d2aadaa1" }, "downloads": -1, "filename": "pystiler-0.1.tar.gz", "has_sig": false, "md5_digest": "229aa78bf633c4ea0d6ee50abb312215", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2639, "upload_time": "2017-08-03T14:27:25", "url": "https://files.pythonhosted.org/packages/1c/15/468bee76c51fd9b4546791ec4b23728597593cbfe55b83409ae6aa64c3df/pystiler-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c76cae8a3663e506a98b305a41b4c3ab", "sha256": "b14161aa2e392d52e5e9f96e6dacbf99209c5821345a1038bef00a7c3d98a0f9" }, "downloads": -1, "filename": "pystiler-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c76cae8a3663e506a98b305a41b4c3ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3173, "upload_time": "2017-08-03T14:31:38", "url": "https://files.pythonhosted.org/packages/c4/51/cc64b817cfcb6448c06ac09dd0e86f8cedf3fdc71ed922bfef3b9f379274/pystiler-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d5891703c365aa62a54f10bd045eb5dd", "sha256": "4491d29ae0a2d2035499d23b7054f00c2012f70239876eef193b244bb648d4b8" }, "downloads": -1, "filename": "pystiler-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d5891703c365aa62a54f10bd045eb5dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3728, "upload_time": "2017-08-03T14:42:45", "url": "https://files.pythonhosted.org/packages/be/5b/5b352dc61d867693a4c3b2527fc263779e5d98b8a0dd1629877d46c92ee1/pystiler-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "90e099439767413669ec1ee5811307a8", "sha256": "34eab582a46b1b37f1d1b264d4c4f5a1ab9d64356c9e8b731f865d591467bef9" }, "downloads": -1, "filename": "pystiler-0.2.0.tar.gz", "has_sig": false, "md5_digest": "90e099439767413669ec1ee5811307a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3982, "upload_time": "2017-08-03T17:31:37", "url": "https://files.pythonhosted.org/packages/ac/a4/bac468c7c7a77b7dc423aa0090496db9732fa568cbe1bdebfd91e0efb325/pystiler-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "46440d2e8a7bd9bd4f4969a6151d4d90", "sha256": "a4a4f08be2baabdf3a0886ddb610dc43d5e7ce296a40c879ed5acf14f490b41a" }, "downloads": -1, "filename": "pystiler-0.2.1.tar.gz", "has_sig": false, "md5_digest": "46440d2e8a7bd9bd4f4969a6151d4d90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4005, "upload_time": "2017-08-03T17:37:49", "url": "https://files.pythonhosted.org/packages/c7/7a/a654c79fb8e4961d31e6b169ffa6acbe0a3fca072e4dd83aafdc94774f56/pystiler-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "0a2a0ac5e45b3bee76d661563610526f", "sha256": "bd18c2f143da949372a51403676900afd307803bd0b851d3fbcddbef785d9225" }, "downloads": -1, "filename": "pystiler-0.2.2.tar.gz", "has_sig": false, "md5_digest": "0a2a0ac5e45b3bee76d661563610526f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4003, "upload_time": "2017-08-03T17:41:03", "url": "https://files.pythonhosted.org/packages/30/cc/9e0bf3ca7d929b9a60299366aeb41d544bf1232787ca5962884769a0366a/pystiler-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "02a2e23b4d1e769b717b7415b6fd5cb1", "sha256": "a1662d44e3f4da4668eaebd90a112d374f19e3534ff47d93118923129088e0f4" }, "downloads": -1, "filename": "pystiler-0.2.3.tar.gz", "has_sig": false, "md5_digest": "02a2e23b4d1e769b717b7415b6fd5cb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4409, "upload_time": "2017-08-03T20:57:26", "url": "https://files.pythonhosted.org/packages/c2/bf/4e2a35af79c99ce63c323d58512c65ceb425b6848f198c491a5b24ce1a07/pystiler-0.2.3.tar.gz" } ], "0.2.3.1": [ { "comment_text": "", "digests": { "md5": "abede1dc38ebc0e1a9d435f5abe0010f", "sha256": "5655d8a176dffc979b974f44caa73410d4f4cbf029b2b45eb6fd4369d8d353dc" }, "downloads": -1, "filename": "pystiler-0.2.3.1.tar.gz", "has_sig": false, "md5_digest": "abede1dc38ebc0e1a9d435f5abe0010f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4208, "upload_time": "2017-08-04T03:09:51", "url": "https://files.pythonhosted.org/packages/4c/d1/f1f2cdcfee3773fe109947624ac4db4cc30a5fcf07774a80a45849a6e879/pystiler-0.2.3.1.tar.gz" } ], "0.2.3.2": [ { "comment_text": "", "digests": { "md5": "2a8d2e3e4af59764981fc88cff237355", "sha256": "4dc0947b04ff73161667e3a19e5408413a8e91c83e14425d6f66e909062aa5f6" }, "downloads": -1, "filename": "pystiler-0.2.3.2.tar.gz", "has_sig": false, "md5_digest": "2a8d2e3e4af59764981fc88cff237355", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4499, "upload_time": "2017-08-04T03:11:32", "url": "https://files.pythonhosted.org/packages/88/2b/ab0559485492c3a63f0a46fb04f9de7a895e80a0b2def3f416df48a9cf78/pystiler-0.2.3.2.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "19b3f3adf9a0e6001d6dc1934e807700", "sha256": "3724959ceeb204555772eabc1e5c04181509a897c9bbf69719c00b3691eefbcf" }, "downloads": -1, "filename": "pystiler-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19b3f3adf9a0e6001d6dc1934e807700", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7638, "upload_time": "2017-08-06T17:24:11", "url": "https://files.pythonhosted.org/packages/a9/ed/923aa0da4a37d3f9691aea4756e0621bbec5721ba425a39ca82d03f85c81/pystiler-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73c2faaccb8142ff78c387c953745766", "sha256": "ee9ebf5e1b19b077b59b690dd9ab634cef3889fec709949a807b716e6b5845b8" }, "downloads": -1, "filename": "pystiler-0.2.4.tar.gz", "has_sig": false, "md5_digest": "73c2faaccb8142ff78c387c953745766", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5088, "upload_time": "2017-08-06T17:24:13", "url": "https://files.pythonhosted.org/packages/4c/d2/195aaf95e8e83c449d4a2a202feef3235ef0911220b10e48dda4676c137e/pystiler-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "c9f71b994f8ce42a0e873abee5b62eb1", "sha256": "1d342d47ef35ec49c9812579283a5ac1c49377f455edfa985d606b8478657c58" }, "downloads": -1, "filename": "pystiler-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9f71b994f8ce42a0e873abee5b62eb1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10502, "upload_time": "2017-08-06T17:29:29", "url": "https://files.pythonhosted.org/packages/60/6c/8d3e3c50f931ef301154311f8519460c729db372b6c6483626e78b58f161/pystiler-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa8e95d0fb2c8b7e4e14f628ecfda82f", "sha256": "d073a90c6f1e7e6a95ca611e3dc635a96ee916b0519d031684bc42e228eb9eb4" }, "downloads": -1, "filename": "pystiler-0.2.5.tar.gz", "has_sig": false, "md5_digest": "fa8e95d0fb2c8b7e4e14f628ecfda82f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5110, "upload_time": "2017-08-06T17:29:31", "url": "https://files.pythonhosted.org/packages/a9/9a/bb80453ffbd059cb54c0ef0c370d0b00e1e9a3d20dedeba5f2246a169c32/pystiler-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "233009c3c423ff1c0d797f963f5c86b7", "sha256": "67a17e9907bd944fb0b9fbaea260ff5697c915586b2de89a45341ffb2203730a" }, "downloads": -1, "filename": "pystiler-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "233009c3c423ff1c0d797f963f5c86b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7670, "upload_time": "2017-08-06T17:32:45", "url": "https://files.pythonhosted.org/packages/b0/4e/6d9a4f0e2a0f091ef3e575172dc3bdf6fe69e3482bc87195260ef57e1e4d/pystiler-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc54d653ea243d91fee9c91ab7a55cdf", "sha256": "6c400699a29559d98316eb5aa39905cec2c6e6ba605533f4229094e693651d10" }, "downloads": -1, "filename": "pystiler-0.2.6.tar.gz", "has_sig": false, "md5_digest": "dc54d653ea243d91fee9c91ab7a55cdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5110, "upload_time": "2017-08-06T17:32:47", "url": "https://files.pythonhosted.org/packages/fd/63/06b53aa5bd244abd81312ead1f8ba5c74d3c077a6c1b6436ee0f6a331b3b/pystiler-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "4c110bb583045d75e41a96ea17f5dc1b", "sha256": "8df07010f7521d530fcf3d86ae110f0e14e6ba8c68eef77568c840ca3ab188b5" }, "downloads": -1, "filename": "pystiler-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c110bb583045d75e41a96ea17f5dc1b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7668, "upload_time": "2017-08-06T17:36:30", "url": "https://files.pythonhosted.org/packages/71/0a/d44bbe5f25da93c1c1f89a0a57388652009cbeb64a204647c6264c059650/pystiler-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e7808a7434bd8c5d016074cd3fab080", "sha256": "8d25f961535a3a21453cf52df0cd7773f5aa6819e71e8ae4f7e63200ccc40db7" }, "downloads": -1, "filename": "pystiler-0.2.7.tar.gz", "has_sig": false, "md5_digest": "1e7808a7434bd8c5d016074cd3fab080", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5108, "upload_time": "2017-08-06T17:36:31", "url": "https://files.pythonhosted.org/packages/6d/60/5da767df6b1e55a802d0d219247917d9896eaf2e44b67990ace63542ecc0/pystiler-0.2.7.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "cdc503d26781719a42b13c234cd42d4f", "sha256": "e342e1ea9902fdeb0b8af7514094715a141fa39c3b8f0b656c0773644ecaf906" }, "downloads": -1, "filename": "pystiler-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cdc503d26781719a42b13c234cd42d4f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9108, "upload_time": "2017-08-23T14:49:39", "url": "https://files.pythonhosted.org/packages/16/87/d9c5b33b4f3eb0ece50098c5d9a37c3f9a8d7993259fd7a901d515ad835b/pystiler-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f0b40dc6787a4bb607dd73cb8cd93cd", "sha256": "b0c4ee412b815740868cabb906da155c10018b76744add469c7d46b738cf8cc5" }, "downloads": -1, "filename": "pystiler-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5f0b40dc6787a4bb607dd73cb8cd93cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6180, "upload_time": "2017-08-23T14:49:40", "url": "https://files.pythonhosted.org/packages/28/34/a62602e10e3f3f5952bed72057af4bf692802d6898b845ae90b046920013/pystiler-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d72cc838d1b0c57786b7cda38bca16e9", "sha256": "6dcdc2feb5ce920ea3ec8a8320e6b33dcc3562deb45bfe7639a67021ab912893" }, "downloads": -1, "filename": "pystiler-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d72cc838d1b0c57786b7cda38bca16e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9700, "upload_time": "2017-08-23T15:26:33", "url": "https://files.pythonhosted.org/packages/9d/e6/318402602bc7a2b03d28ff52f7ee457ce173c66cd6d1c154ffe1fcc12825/pystiler-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "94a9b971e40c91455d8602286e5fc535", "sha256": "60c662b98993f638423edb6818f4c48ebf97c5bf56cec10be5ec55d17db33f48" }, "downloads": -1, "filename": "pystiler-0.3.1.tar.gz", "has_sig": false, "md5_digest": "94a9b971e40c91455d8602286e5fc535", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6557, "upload_time": "2017-08-23T15:26:34", "url": "https://files.pythonhosted.org/packages/6b/15/7e80a4a9dd3e2ed1110c3964f2668809ec8b2d58bd35988b8209999dd6fc/pystiler-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "32ae4a0ccb0e36d1128e35609fa79b88", "sha256": "476f61b4a0c4c83b5f3c25e2bac62c2238013f459db87193877eded7571fec38" }, "downloads": -1, "filename": "pystiler-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "32ae4a0ccb0e36d1128e35609fa79b88", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10489, "upload_time": "2018-01-01T20:52:08", "url": "https://files.pythonhosted.org/packages/6a/ee/eb604797267d1e6d0498b65daacb6ea66bc9bd9028156fa10d31efaa12bb/pystiler-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "085427fb48bbda88f794eeb37e46f63b", "sha256": "4eeaa424ac1114bd2df8a2c3105ea1705a9a503f0bed08c020db11fd000d7af5" }, "downloads": -1, "filename": "pystiler-0.4.0.tar.gz", "has_sig": false, "md5_digest": "085427fb48bbda88f794eeb37e46f63b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7104, "upload_time": "2018-01-01T20:52:11", "url": "https://files.pythonhosted.org/packages/7b/df/a08dcdb7ee6d22cad940ad95ced0a97d8b3e7bf6c570d535a608dca31b64/pystiler-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "f168207d7b147973d4617c379b354867", "sha256": "ca9dfc48a18ed2628836e27d2ea9a50b670859bc67c92e63077938d6b768bf20" }, "downloads": -1, "filename": "pystiler-0.4.1.tar.gz", "has_sig": false, "md5_digest": "f168207d7b147973d4617c379b354867", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7088, "upload_time": "2018-01-01T21:09:56", "url": "https://files.pythonhosted.org/packages/90/79/db41b36dcd445bb839d21bc3b8f3c623f4d5ffd162340fe19bbb5e9c0aac/pystiler-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f168207d7b147973d4617c379b354867", "sha256": "ca9dfc48a18ed2628836e27d2ea9a50b670859bc67c92e63077938d6b768bf20" }, "downloads": -1, "filename": "pystiler-0.4.1.tar.gz", "has_sig": false, "md5_digest": "f168207d7b147973d4617c379b354867", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7088, "upload_time": "2018-01-01T21:09:56", "url": "https://files.pythonhosted.org/packages/90/79/db41b36dcd445bb839d21bc3b8f3c623f4d5ffd162340fe19bbb5e9c0aac/pystiler-0.4.1.tar.gz" } ] }