{"id":13579316,"url":"https://github.com/ssokolow/quicktile","last_synced_at":"2025-05-16T11:07:10.480Z","repository":{"id":611526,"uuid":"249301","full_name":"ssokolow/quicktile","owner":"ssokolow","description":"Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)","archived":false,"fork":false,"pushed_at":"2024-06-05T18:00:35.000Z","size":2356,"stargazers_count":890,"open_issues_count":37,"forks_count":78,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-04-09T06:08:54.759Z","etag":null,"topics":["addon","global-hotkeys","gtk","gtk3","pygobject","python","python-3","python3","tiling","tiling-window-manager","utility","window-manager","x11"],"latest_commit_sha":null,"homepage":"https://ssokolow.com/quicktile/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssokolow.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2009-07-12T15:53:35.000Z","updated_at":"2025-03-18T00:26:39.000Z","dependencies_parsed_at":"2023-07-06T07:47:12.648Z","dependency_job_id":"378d4517-06ee-4e0f-b6c0-05a666338696","html_url":"https://github.com/ssokolow/quicktile","commit_stats":{"total_commits":418,"total_committers":11,"mean_commits":38.0,"dds":0.05980861244019142,"last_synced_commit":"ca8105dcdd08c26de0ce6b987958c15a88489de2"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Fquicktile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Fquicktile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Fquicktile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Fquicktile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssokolow","download_url":"https://codeload.github.com/ssokolow/quicktile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518378,"owners_count":22084374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["addon","global-hotkeys","gtk","gtk3","pygobject","python","python-3","python3","tiling","tiling-window-manager","utility","window-manager","x11"],"created_at":"2024-08-01T15:01:38.304Z","updated_at":"2025-05-16T11:07:05.472Z","avatar_url":"https://github.com/ssokolow.png","language":"Python","readme":"QuickTile\n=========\n\n.. image:: https://scrutinizer-ci.com/g/ssokolow/quicktile/badges/quality-score.png?b=master\n   :target: https://scrutinizer-ci.com/g/ssokolow/quicktile/?branch=master\n   :alt: Scrutinizer Code Quality\n\n.. image:: https://codeclimate.com/github/ssokolow/quicktile/badges/gpa.svg\n   :target: https://codeclimate.com/github/ssokolow/quicktile\n   :alt: Code Climate\n\n.. image:: https://travis-ci.org/ssokolow/quicktile.svg?branch=master\n   :target: https://travis-ci.org/ssokolow/quicktile\n   :alt: Travis-CI\n\n.. image:: https://coveralls.io/repos/github/ssokolow/quicktile/badge.svg?branch=master\n   :target: https://coveralls.io/github/ssokolow/quicktile?branch=master\n   :alt: Coveralls\n\n.. image:: https://img.shields.io/badge/License-GPLv2%2B-blue\n   :target: https://www.gnu.org/licenses/gpl-2.0.html\n   :alt: License: GPLv2+\n\nKeyboard-driven Window Tiling for your existing X11 window manager\n\nImportant Message For Users of GTK+ 2.x QuickTile\n-------------------------------------------------\n\nIn addition to migrating from GTK+ 2.x to GTK 3, QuickTile 0.4.0 makes the\nfollowing changes:\n\n* The PyGTK to PyGI migration has changed the list of dependencies\n  significantly.\n* Regressions in certain GDK APIs have made python-xlib a mandatory dependency.\n* The ``middle`` command has been renamed to ``center`` for consistency with\n  ``move-to-center``. You will have to update anything which calls ``middle``\n  via the command-line or D-Bus APIs, but ``quicktile.cfg`` will update\n  automatically.\n* Please contact me if you maintain your own QuickTile patches.\n  I have begun a major refactoring and want to make sure your changes\n  get updated accordingly.\n\nRequirements:\n-------------\n\n**Debian and derivatives (Ubuntu, Mint, etc.):**\n\n.. code:: sh\n\n    sudo apt-get install python3 python3-pip python3-setuptools python3-gi python3-xlib python3-dbus gir1.2-glib-2.0 gir1.2-gtk-3.0 gir1.2-wnck-3.0\n\n**Fedora and derivatives:**\n\n.. code:: sh\n\n    sudo dnf install python3 python3-pip python3-setuptools python3-gobject python3-xlib python3-dbus gtk3 libwnck3\n\nFor other distros or for more details, please consult the `Dependencies\n\u003chttp://ssokolow.com/quicktile/installation.html#dependencies\u003e`_ section of the\nmanual.\n\nInstallation\n------------\n\nQuickTile can be run from the source folder without installation via the\n``./quicktile.sh`` script.\n\nFor system-wide installation, the recommended option is ``pip3``, which will\nrecord a log to allow easy uninstallation.\n\n``sudo -H pip3 install https://github.com/ssokolow/quicktile/archive/master.zip``\n\nQuickTile's dependence on PyGObject prevents a fully PyPI-based installation\noption.\n\nConsult the `Installation \u003chttp://ssokolow.com/quicktile/installation.html\u003e`_\nsection of the manual for full details and alternative installation options.\n\n**First-Run Instructions for Global Hotkeys:**\n\n1. Run ``quicktile`` or ``./quicktile.sh`` once to generate your configuration\n   file at ``~/.config/quicktile.cfg``.\n2. Edit the keybindings as desired.\n3. Run ``quicktile --daemonize`` or ``./quicktile.sh --daemonize`` to bind to\n   global hotkeys.\n4. If everything seems to be working, add ``quicktile --daemonize`` or\n   ``/full/path/to/quicktile.sh --daemonize`` to the list of commands your\n   desktop will run on login.\n\nConsult the `Configuration \u003chttp://ssokolow.com/quicktile/config.html\u003e`_\nsection of the manual for further details.\n\nImportant Notes:\n^^^^^^^^^^^^^^^^\n\n* If run in a terminal, QuickTile's ``--daemonize`` option will attempt to\n  report any problems with claiming global hotkeys for itself.\n* You can get a list of valid actions for the configuration file by running\n  ``quicktile --show-actions``.\n* You can list your current keybindings by running\n  ``quicktile --show-bindings``.\n* If you experience problems, please consult the `FAQ\n  \u003chttp://ssokolow.com/quicktile/faq.html\u003e`_ section of the manual before\n  reporting an issue.\n\nUsage (Typical)\n---------------\n\n1. Focus the window you want to tile\n2. Hold the modifiers defined in ``ModMask`` (``Ctrl+Alt`` by default).\n3. Repeatedly press one of the defined keybindings to cycle through window\n   sizes available at the desired location on the screen.\n\nConsult ``quicktile --show-bindings`` or the `Command Reference\n\u003chttp://ssokolow.com/quicktile/commands.html\u003e`_ section of the manual for a list\nof default keybindings.\n\n(For example, under default settings, repeatedly pressing ``Ctrl+Alt+7`` will\nplace the active window in the top-left corner of the screen and cycle it\nthrough different width presets.)\n\nThis works best when combined with functionality your existing window manager\nprovides (eg. ``Alt+Tab``) to minimize the need to switch your hand between your\nkeyboard and your mouse.\n\nSee the `Usage \u003chttp://ssokolow.com/quicktile/usage.html\u003e`_ section of the\nmanual for alternative ways to interact with QuickTile.\n\nRemoval\n-------\n\nIf you used the installation instructions listed above, a system-wide\ninstallation of QuickTile can be removed with the following commands:\n\n.. code:: sh\n\n    sudo pip3 uninstall quicktile\n    sudo rm /usr/local/bin/quicktile\n\nSee the `Removal \u003chttp://ssokolow.com/quicktile/installation.html#removal\u003e`_\nsection of the manual for instructions on clearing out files left behind by\nother installation methods.\n\nContributing\n------------\n\nI welcome contributions.\n\nThe recommended approach to make sure minimal effort is wasted is to open an\nissue indicating your interest in working on something. That way, I can let you\nknow if there are any non-obvious design concerns that might hold up my\naccepting your pull requests.\n\nIf you're looking for something to do, a ready supply\nof simple TODOs is split across two different mechanisms:\n\n1. Run ``grep -R TODO *.py quicktile/`` in the project root.\n2. Set ``todo_include_todos = True`` in ``docs/conf.py`` and run\n   ``cd docs; make html`` to generate a version of the manual with a TODO\n   listing on the top-level API documentation page.\n\nSee the `Developer's Guide \u003chttp://ssokolow.com/quicktile/developing.html\u003e`_\nfor more information.\n","funding_links":[],"categories":["Python","Productivity Tools","Packages"],"sub_categories":["Media Servers","window-managers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssokolow%2Fquicktile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssokolow%2Fquicktile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssokolow%2Fquicktile/lists"}