{ "info": { "author": "Hiroyuki Ohsaki", "author_email": "ohsaki@lsnl.jp", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX", "Programming Language :: Python :: 3" ], "description": "# NAME\n\nxpywm - A simple but extensible X11 window manager written in Python.\n\n\n![screenshot](https://raw.githubusercontent.com/h-ohsaki/xpywm/master/screenshot/screenshot-1.png)\n\n![screenshot](https://raw.githubusercontent.com/h-ohsaki/xpywm/master/screenshot/screenshot-2.png)\n\n# SYNOPSIS\n\nxpywm\n\n# DESCRIPTION\n\nThis manual page documents **xpywm**, a simple but extensible X11 window manager\nwritten in Python. **xpywm** is a Python version of **pwm**\n(http://www.lsnl.jp/~ohsaki/software/pwm/), an X11 window manager written in\nPerl.\n\nDevelopment of **pwm** was motivated by perlwm (http://perlwm.sourceforge.net/),\nwhich is a window manager written entirely in Perl. The idea of implementing\nX11 window manager in a light-weight language is great since it allows you to\nfully customize the behavior of the window manager with a little programming.\nSimilarly to perlwm, **pwm** is built based on X11::Protocol module developed by\nStephen McCamant.\n\n**xpywm** is ported from **pwm**. **xpywm** uses python3-xlib module for\ncommunication with the X11 display server.\n\nThe notable features of **xpywm** are its simplicity, compactness, and\nprogrammable cascaded/tiled window placement algorithms.\n\n**xpywm** is simple in a sense that it is entirely written in Python, and it\nrequires only python3-xlib module from PyPI. **xpywm** is written with less\nthan 1,000 lines of code. If you are familiar with X11 protocol and basics of\nPython programming, you can easily read and understand the source code of\n**xpywm**.\n\n**xpywm** is compact since it provides minimal window decorations. **xpywm** has\nno pop-up menus, graphical icons, and window animations. **xpywm** is designed\nto consume the minimum amount of screen space for letting users and\napplications to use as wide screen space as possible. For instance, **xpywm**\ndraws the window title _inside_ the window, rather than outside the window,\nwhich saves dozen-pixel lines around the window.\n\n**xpywm** supports two types of window placement algorithms: programmed mode and\ntiled mode.\n\nIn the programmed mode, you can specify rules for inferring appropriate window\ngeometries. By default, Emacs is placed at the top-left corner of the screen\nwith 50% window width and 100% window height. Firefox, chromium, mupdf, xdvi,\nLibreOffice, tgif and Mathematica are placed next to the Emacs with 50% window\nwidth and 100% window height. The terminal window is placed at the\nbottom-right corner with 50% window width and 70% window height. If there\nexist more than two terminal windows, the size of each terminal window is\nshrunk to 1/4 of the screen, and placed in a non-overlapping way.\n\nIn the titled mode, all windows are placed in a titled fashion so that any\nwindow will have the same window width and height, and that any window will\nnot overlap with others, as like tile-based window managers. Moreover,\n**xpywm** tries to allocate larger area for Emacs; i.e., if there are three\nwindows, say, Emacs and two terminals, Emacs will occupy the half of the\nscreen, and each terminal will have the quarter of the screen.\n\n# OPTIONS\n\nNone\n\n# INSTALLATION\n\n```sh\n$ pip3 install xpywm\n```\n\n# CUSTOMIZATION\n\nOn startup, **xpywm** loads per-user RC script (`~/.xpywmrc`) if it exists.\nThe RC script is any valid Python script. You can change the appearance and\nthe behavior of **xpywm** using the RC file.\n\nSince Python is one of interpreters, you can easily customize the behavior of\n**xpywm** by directly modifying its variables, functions, and methods. For\ninstance, if you want to change the appearance of window frames, override\nvariables. If you want to change the keyboard binding, modify the dictionary\nKEYBOARD_HANDLER. The key of the dictionary is the name of an X11 keysym\nstring. The value of the dictionary is self explanatory: modifier is the mask\nof keyboard modifiers and callback is the reference to the callback function.\n\nAn example `~/.xpywmrc` file is as follows.\n\n```python\n# specify the title font\nglobal TITLE_FONT\nTITLE_FONT = '-hiro-fixed-medium-r-normal--8-80-75-75-c-80-iso646.1991-irv'\n\n# add key binding: Alt + Ctrl + 6 to access your server\nKEYBOARD_HANDLER['6'] = {\n 'modifier': X.Mod1Mask | X.ControlMask, 'command': 'ssh -f your_server urxvt &'\n}\n\n# add key binding: Alt + Ctrl + F12 to execute your shell script\nKEYBOARD_HANDLER['F12'] = {\n 'modifier': X.ShiftMask, 'command': '/path/to/your/script.sh'\n}\n\n```\n\n# BINDINGS\n\n- Mod1 + Button1\n\n Move the current active window while dragging with pressing Mod1 + Button1.\n\n- Mod1 + Button3\n\n Resize the current active window while dragging with pressing Mod1 + Button3.\n\n- Ctrl + Mod1 + i\n\n Focus the next window. Available windows are circulated in the order of\n top-left, bottom-left, top-right, and bottom-right.\n\n- Ctrl + Mod1 + m\n\n Raise or lower the current active window.\n\n- Ctrl + Mod1 + '\n\n Toggle the maximization of the current active window.\n\n- Ctrl + Mod1 + ;\n\n Toggle the vertical maximization of the current active window.\n\n- Ctrl + Mod1 + ,\n\n Layout all available windows in the programmed mode.\n\n- Ctrl + Mod1 + .\n\n Layout all available windows in the tiled mode.\n\n- Ctrl + Mod1 + z\n\n Destroy the current active window.\n\n- Ctrl + Mod1 + x\n\n Toggle the current active window between the first and the second virtual screens.\n\n- Ctrl + Mod1 + [\n\n Switch to the previous virtual screen.\n\n- Ctrl + Mod1 + ]\n\n Switch to the next virtual screen.\n\n- Ctrl + Mod1 + 1\n\n Run a command \"(unset STY; urxvt) &\" via os.system() function.\n\n- Ctrl + Mod1 + 2\n\n Run a command \"pidof emacs || emacs &\" via os.system() function.\n\n- Ctrl + Mod1 + 3\n\n Run a command \"pidof firefox || firefox &\" via os.system() function.\n\n- Mod1 + F1 -- Mod1 + F4\n\n Switch to the virtual screen 1--4, respectively.\n\n- Shift + F7\n\n Enable the external video output through HDMI or DP port.\n\n- Ctrl + Mod1 + Delete\n\n Restart xpywm.\n\n- Ctrl + Mod1 + =\n\n Terminate xpywm.\n\n# AVAILABILITY\n\nThe latest version of **xpywm** is available at PyPI\n(https://pypi.org/project/xpywm/) .\n\n# SEE ALSO\n\ntwm(1), perlwm(1), pwm(1), xpymon(1), xpylog(1)\n\n# AUTHOR\n\nHiroyuki Ohsaki \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/h-ohsaki/xpywm.git", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "xpywm", "package_url": "https://pypi.org/project/xpywm/", "platform": "", "project_url": "https://pypi.org/project/xpywm/", "project_urls": { "Homepage": "https://github.com/h-ohsaki/xpywm.git" }, "release_url": "https://pypi.org/project/xpywm/1.13/", "requires_dist": [ "Xlib" ], "requires_python": "", "summary": "A simple but extensible X11 window manager written in Python", "version": "1.13", "yanked": false, "yanked_reason": null }, "last_serial": 7327834, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "b994788ff46e35e04ecf9a9b8a27dd40", "sha256": "d4c684a986cb23ac0bc07c34a3c21b95ec5c21641b55af3f3e3c949fc471fca1" }, "downloads": -1, "filename": "xpywm-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b994788ff46e35e04ecf9a9b8a27dd40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24712, "upload_time": "2019-07-05T15:04:49", "upload_time_iso_8601": "2019-07-05T15:04:49.077876Z", "url": "https://files.pythonhosted.org/packages/bd/82/c0e59c63673d5979220db42c97fce824d3075c325e29288803fdd467f8c8/xpywm-1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "17b244103ecfb2cef157687f757b8b9c", "sha256": "ae28e533528f2c090b09e689545df52724ad9b99578d52478a9ed2acce683473" }, "downloads": -1, "filename": "xpywm-1.0.tar.gz", "has_sig": false, "md5_digest": "17b244103ecfb2cef157687f757b8b9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14716, "upload_time": "2019-07-05T15:04:51", "upload_time_iso_8601": "2019-07-05T15:04:51.206320Z", "url": "https://files.pythonhosted.org/packages/60/ac/b6aca06e20c620e878d421b946b54fafe6873574e05f3858fc4ab8a645aa/xpywm-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1": [ { "comment_text": "", "digests": { "md5": "74c01007bcd00a701988a7e99bc36791", "sha256": "77b792222471a0413cf6677c5086fa7ea9813faece71e6727ce01c89fd0c1c2d" }, "downloads": -1, "filename": "xpywm-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "74c01007bcd00a701988a7e99bc36791", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24746, "upload_time": "2019-07-05T15:59:02", "upload_time_iso_8601": "2019-07-05T15:59:02.412524Z", "url": "https://files.pythonhosted.org/packages/56/22/ba985040e564b923c9bb21dbef07740f3f1902fe22e1c45fc02cd2810633/xpywm-1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5110af006e0036c64e2233dd68bbd6fb", "sha256": "5697e122fd59714f09dfd953bbcc3b14fd1c496773bea50b9ae84b24ee5780c5" }, "downloads": -1, "filename": "xpywm-1.1.tar.gz", "has_sig": false, "md5_digest": "5110af006e0036c64e2233dd68bbd6fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14745, "upload_time": "2019-07-05T15:59:04", "upload_time_iso_8601": "2019-07-05T15:59:04.313647Z", "url": "https://files.pythonhosted.org/packages/3c/7d/3a9a203b10cb0c7d1b8fe580abb26a80a6a929f10fe18d9ca3a564d4610d/xpywm-1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10": [ { "comment_text": "", "digests": { "md5": "18018ff28f3b861417eb88cd72aa6d85", "sha256": "32a2be5880a918d368e7b45d1350ba17d7c1afbfa993c09a71797976cc0cfc85" }, "downloads": -1, "filename": "xpywm-1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "18018ff28f3b861417eb88cd72aa6d85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25497, "upload_time": "2019-11-09T03:06:05", "upload_time_iso_8601": "2019-11-09T03:06:05.708729Z", "url": "https://files.pythonhosted.org/packages/9e/cf/326959b68e7509019dd62e69ff8fd4c6ed3ab0011bb58224e394d31d6620/xpywm-1.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2603e2dcdf53e3a867fa8a7d3891d2eb", "sha256": "448b132797bbb3a724a892802bb49a9d414b7b63f1bf75bc39d961449d2202ce" }, "downloads": -1, "filename": "xpywm-1.10.tar.gz", "has_sig": false, "md5_digest": "2603e2dcdf53e3a867fa8a7d3891d2eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15789, "upload_time": "2019-11-09T03:06:07", "upload_time_iso_8601": "2019-11-09T03:06:07.654888Z", "url": "https://files.pythonhosted.org/packages/ad/76/015e5988ee6de20a6c2dfcf57a1ccac27835eb2d53b0814598215eca4765/xpywm-1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11": [ { "comment_text": "", "digests": { "md5": "f9a72863d614f6a8dca9f5d080efae1b", "sha256": "2cb8b343eb18923a1927677a6373974a9c76f6d8f5d986bd61e495d91fdacd8b" }, "downloads": -1, "filename": "xpywm-1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "f9a72863d614f6a8dca9f5d080efae1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25509, "upload_time": "2020-04-21T03:20:39", "upload_time_iso_8601": "2020-04-21T03:20:39.624545Z", "url": "https://files.pythonhosted.org/packages/12/73/eb09805ad85bc7209570318a105f845f72108c1a129202040f32dca81750/xpywm-1.11-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1c24b6b66e1b0956f1949d6b198977b8", "sha256": "7d15df2b2a6a3351888d752ffe09544ee51e709a032130feca7c2675b10fd84a" }, "downloads": -1, "filename": "xpywm-1.11.tar.gz", "has_sig": false, "md5_digest": "1c24b6b66e1b0956f1949d6b198977b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15813, "upload_time": "2020-04-21T03:20:41", "upload_time_iso_8601": "2020-04-21T03:20:41.246510Z", "url": "https://files.pythonhosted.org/packages/33/57/bd24e4883610746f2e09e0c87f147aa28f601d016a8fabc77e4bccf7b964/xpywm-1.11.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12": [ { "comment_text": "", "digests": { "md5": "1555768078160036947d00390280da77", "sha256": "f13d4b2efe5740730462d6e6d0cf5718834707f2c149dc6e2f386fef846f17aa" }, "downloads": -1, "filename": "xpywm-1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "1555768078160036947d00390280da77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25526, "upload_time": "2020-05-26T15:08:53", "upload_time_iso_8601": "2020-05-26T15:08:53.851769Z", "url": "https://files.pythonhosted.org/packages/58/1f/4be720d853c3966eefde4db981f4d60208bc3b0738e73cde3cd19a396022/xpywm-1.12-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "364a46e6599f359f0e140a0371bbffd3", "sha256": "2d7042bcaefcea6a23168fceac17acd97d17c26ba6a303986fe11a3568e86fc8" }, "downloads": -1, "filename": "xpywm-1.12.tar.gz", "has_sig": false, "md5_digest": "364a46e6599f359f0e140a0371bbffd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15829, "upload_time": "2020-05-26T15:08:55", "upload_time_iso_8601": "2020-05-26T15:08:55.463389Z", "url": "https://files.pythonhosted.org/packages/51/1c/4ecef69bd1e97544052fd40e56445bca39f3fb2416f2924789b1cc1bd41b/xpywm-1.12.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13": [ { "comment_text": "", "digests": { "md5": "9d1432844e80b6b8b32694c7fe805787", "sha256": "b32a5f1d61a1b020519853c174e08e5da184f441b1978926ba1e84d2071450c9" }, "downloads": -1, "filename": "xpywm-1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "9d1432844e80b6b8b32694c7fe805787", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25508, "upload_time": "2020-05-26T15:51:36", "upload_time_iso_8601": "2020-05-26T15:51:36.933888Z", "url": "https://files.pythonhosted.org/packages/10/aa/ce4a7c8025bfa723580e2510ebc3dc82d5fbeead0ed25e8d4c207b4818b7/xpywm-1.13-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cfb700e057cc4a7bf92eb8ac464ec8c4", "sha256": "da1cfeecf68faa2b5b0c09339ca0d8e983611d9f02d32e186cf364e082af1859" }, "downloads": -1, "filename": "xpywm-1.13.tar.gz", "has_sig": false, "md5_digest": "cfb700e057cc4a7bf92eb8ac464ec8c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15808, "upload_time": "2020-05-26T15:51:38", "upload_time_iso_8601": "2020-05-26T15:51:38.578783Z", "url": "https://files.pythonhosted.org/packages/30/a3/5eb11abcfab2f2f715737da41329585abbf871acba864c1f63b4d434926a/xpywm-1.13.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3": [ { "comment_text": "", "digests": { "md5": "45fd27d94e1e343f41b482a9c91ec5d6", "sha256": "44d11791ab5c80adcfe6f05e162e383cec29eb88ce4fcc96eda468f76523d509" }, "downloads": -1, "filename": "xpywm-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "45fd27d94e1e343f41b482a9c91ec5d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25197, "upload_time": "2019-07-06T02:34:29", "upload_time_iso_8601": "2019-07-06T02:34:29.641422Z", "url": "https://files.pythonhosted.org/packages/0e/4d/2198e62bf2162f5658b9b96585cc143315f72b2cb896b0f0c0d89cd8f4d6/xpywm-1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9593129d75df40b197c089f42e9dcce5", "sha256": "605070a095da4173aa7613adb07d3013fb7c5bde53c668316ffa42f8425326cd" }, "downloads": -1, "filename": "xpywm-1.3.tar.gz", "has_sig": false, "md5_digest": "9593129d75df40b197c089f42e9dcce5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15463, "upload_time": "2019-07-06T02:34:31", "upload_time_iso_8601": "2019-07-06T02:34:31.392493Z", "url": "https://files.pythonhosted.org/packages/35/e5/2c1bb7ab5076116067ffaaefa75c1c25de2758b97a405157bdc3b02a645f/xpywm-1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4": [ { "comment_text": "", "digests": { "md5": "538951d948a8831debeb79ec4ef30122", "sha256": "89e1161deb63ffdc904e60accffc0345b6902bd46a7fccd5c50fbb8e25391974" }, "downloads": -1, "filename": "xpywm-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "538951d948a8831debeb79ec4ef30122", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25176, "upload_time": "2019-07-08T09:48:18", "upload_time_iso_8601": "2019-07-08T09:48:18.118851Z", "url": "https://files.pythonhosted.org/packages/b0/50/0c3d1df32aa72a927ad304be1cd43a1fff12c6bd6380aced64af59eb917a/xpywm-1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d8ce356cd486fd974cc4f0a65438a2b8", "sha256": "07896458d90822d63bac289245ceeb60a8db6c2b99c4d04839aff7be59d1a66d" }, "downloads": -1, "filename": "xpywm-1.4.tar.gz", "has_sig": false, "md5_digest": "d8ce356cd486fd974cc4f0a65438a2b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15426, "upload_time": "2019-07-08T09:48:19", "upload_time_iso_8601": "2019-07-08T09:48:19.665891Z", "url": "https://files.pythonhosted.org/packages/ad/96/6d2e0952e6248b97a4ef2540e6ef81f5f9a08a69169e3db06c211406c9bd/xpywm-1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5": [ { "comment_text": "", "digests": { "md5": "4f13aa040145dcd65ccfea2826c023d1", "sha256": "de39c97009cfe06627c145744a8f5a99244e64f1c9fe314ae6e2253fa0b969f2" }, "downloads": -1, "filename": "xpywm-1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4f13aa040145dcd65ccfea2826c023d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25161, "upload_time": "2019-09-16T04:50:49", "upload_time_iso_8601": "2019-09-16T04:50:49.552942Z", "url": "https://files.pythonhosted.org/packages/65/5d/a174cb4c34578ccd154c3fe8a3cc0925bacd575a5239c8db16c15201f3e9/xpywm-1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6e690c0cbadb3526d5eebb70448f95be", "sha256": "56e461f5ae7417e2281ffc8b065ce02c5e79cd20c0b8a6939b724b6965680eac" }, "downloads": -1, "filename": "xpywm-1.5.tar.gz", "has_sig": false, "md5_digest": "6e690c0cbadb3526d5eebb70448f95be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15412, "upload_time": "2019-09-16T04:50:51", "upload_time_iso_8601": "2019-09-16T04:50:51.538377Z", "url": "https://files.pythonhosted.org/packages/69/a8/79c96cf075292152cc523a5483f6861fb61d7e6bb97dcc3dbd45b5481aa2/xpywm-1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6": [ { "comment_text": "", "digests": { "md5": "71a55424cd1e636f20a81051315206da", "sha256": "0869b1b189c8cce7fa7071385ef5a64002f4e20997d6827e4ff519a694983dd0" }, "downloads": -1, "filename": "xpywm-1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "71a55424cd1e636f20a81051315206da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25169, "upload_time": "2019-09-27T13:06:57", "upload_time_iso_8601": "2019-09-27T13:06:57.457017Z", "url": "https://files.pythonhosted.org/packages/84/69/f7ebac095b0892974c07f414397d9bdeafb5b0724ab46a9d14df5df5faeb/xpywm-1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ed36f8e85eb6a17e23b51975f9957ebb", "sha256": "5df8bd50209e56898f42180dfe73ea6c5e7c63eedd60d4e062a8b423fedec67e" }, "downloads": -1, "filename": "xpywm-1.6.tar.gz", "has_sig": false, "md5_digest": "ed36f8e85eb6a17e23b51975f9957ebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15423, "upload_time": "2019-09-27T13:06:59", "upload_time_iso_8601": "2019-09-27T13:06:59.094676Z", "url": "https://files.pythonhosted.org/packages/4f/14/b4d7500ec14c265bdd7b11ed804e45401fc08fcb4511a68fd9da88edee4b/xpywm-1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7": [ { "comment_text": "", "digests": { "md5": "a3eb6548550dc550e0eed2daeb14338d", "sha256": "6a2f0807515d07f75e9ae75efd290b3c4d06615098b2ba4aaee70475e2d251e6" }, "downloads": -1, "filename": "xpywm-1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a3eb6548550dc550e0eed2daeb14338d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25338, "upload_time": "2019-10-18T05:29:28", "upload_time_iso_8601": "2019-10-18T05:29:28.309418Z", "url": "https://files.pythonhosted.org/packages/72/98/66a08df5e1c1ecb4ec71149f897154a75bbd8f4a0cc9d963f22a1eb9d3d2/xpywm-1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c5ffb7e10ae850ab97a1d19e1115881d", "sha256": "0ec8d874a28f8011845d04bb713a8e744ffa01f8d826bfc897c5279aa40ad816" }, "downloads": -1, "filename": "xpywm-1.7.tar.gz", "has_sig": false, "md5_digest": "c5ffb7e10ae850ab97a1d19e1115881d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15582, "upload_time": "2019-10-18T05:29:30", "upload_time_iso_8601": "2019-10-18T05:29:30.000694Z", "url": "https://files.pythonhosted.org/packages/83/18/582913c3c05ab312eaccd10db03ee2b83ce634e7223b896763ae1627d510/xpywm-1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8": [ { "comment_text": "", "digests": { "md5": "71ecfc56ecdeffcdf481c7994822ba52", "sha256": "55cb796a4b618dcd100167ee5f2cc8ef525860b403271dd0369435bb9606daf1" }, "downloads": -1, "filename": "xpywm-1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "71ecfc56ecdeffcdf481c7994822ba52", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25303, "upload_time": "2019-10-20T03:45:25", "upload_time_iso_8601": "2019-10-20T03:45:25.154691Z", "url": "https://files.pythonhosted.org/packages/35/09/2a1ebcdba18e0514441eee45d6ebf18d131b89c88aee19a9dcfa050d31df/xpywm-1.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2cb58a196ed6454069a1d27b47ef61b4", "sha256": "fff1230b6a1060c969c751f4c3e623aecba638e5439740aa8af30062e78b2b06" }, "downloads": -1, "filename": "xpywm-1.8.tar.gz", "has_sig": false, "md5_digest": "2cb58a196ed6454069a1d27b47ef61b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15546, "upload_time": "2019-10-20T03:45:28", "upload_time_iso_8601": "2019-10-20T03:45:28.502152Z", "url": "https://files.pythonhosted.org/packages/79/9c/588573acb96c980597ecf516f53ecc6d0d5f2bb4849b3f8a00dcc6a91667/xpywm-1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9": [ { "comment_text": "", "digests": { "md5": "1a3d484942a0c7c6508201011d243623", "sha256": "121289e160bea7f913bd5f5df4ba0188f2f759e523826b24c256522aee62056e" }, "downloads": -1, "filename": "xpywm-1.9-py3.7.egg", "has_sig": false, "md5_digest": "1a3d484942a0c7c6508201011d243623", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 13226, "upload_time": "2019-11-09T03:05:13", "upload_time_iso_8601": "2019-11-09T03:05:13.827292Z", "url": "https://files.pythonhosted.org/packages/6d/fe/3fc3f309f97819ad1010d03eff6676e52ff560eed88ba390c066021610d2/xpywm-1.9-py3.7.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "86b71605c764ee1463067cd660a7d44a", "sha256": "ed97ad389cb489c4d8f801870c7f16e58fb60127186cdc393e4326f74ba348be" }, "downloads": -1, "filename": "xpywm-1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "86b71605c764ee1463067cd660a7d44a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25473, "upload_time": "2019-10-25T00:10:30", "upload_time_iso_8601": "2019-10-25T00:10:30.282032Z", "url": "https://files.pythonhosted.org/packages/dc/e3/892802e5cecce6cfa8dcd9005f08d12adfaa1b0e7b82a4d762bf62521e8b/xpywm-1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "753c0da626e932d122cc24cf0fc9fd50", "sha256": "4a805fc8d2220edba25ae07e548b88a430f4c9f469aaabf93ff50bc6ac750219" }, "downloads": -1, "filename": "xpywm-1.9.tar.gz", "has_sig": false, "md5_digest": "753c0da626e932d122cc24cf0fc9fd50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15780, "upload_time": "2019-10-25T00:10:32", "upload_time_iso_8601": "2019-10-25T00:10:32.205378Z", "url": "https://files.pythonhosted.org/packages/20/d3/dd7eed0b4b010d70f90c186e3532569d9e44b8285092f254bd100e44c926/xpywm-1.9.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9d1432844e80b6b8b32694c7fe805787", "sha256": "b32a5f1d61a1b020519853c174e08e5da184f441b1978926ba1e84d2071450c9" }, "downloads": -1, "filename": "xpywm-1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "9d1432844e80b6b8b32694c7fe805787", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25508, "upload_time": "2020-05-26T15:51:36", "upload_time_iso_8601": "2020-05-26T15:51:36.933888Z", "url": "https://files.pythonhosted.org/packages/10/aa/ce4a7c8025bfa723580e2510ebc3dc82d5fbeead0ed25e8d4c207b4818b7/xpywm-1.13-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cfb700e057cc4a7bf92eb8ac464ec8c4", "sha256": "da1cfeecf68faa2b5b0c09339ca0d8e983611d9f02d32e186cf364e082af1859" }, "downloads": -1, "filename": "xpywm-1.13.tar.gz", "has_sig": false, "md5_digest": "cfb700e057cc4a7bf92eb8ac464ec8c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15808, "upload_time": "2020-05-26T15:51:38", "upload_time_iso_8601": "2020-05-26T15:51:38.578783Z", "url": "https://files.pythonhosted.org/packages/30/a3/5eb11abcfab2f2f715737da41329585abbf871acba864c1f63b4d434926a/xpywm-1.13.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }