{"id":21291690,"url":"https://github.com/jdtsmith/splitview","last_synced_at":"2025-10-12T08:38:56.037Z","repository":{"id":66870003,"uuid":"161954458","full_name":"jdtsmith/SplitView","owner":"jdtsmith","description":"Hammerspoon Spoon to automate putting two windows in fullscreen split-view","archived":false,"fork":false,"pushed_at":"2024-12-16T02:09:59.000Z","size":613,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-11T16:53:47.283Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdtsmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-12-16T00:17:57.000Z","updated_at":"2024-12-16T02:09:57.000Z","dependencies_parsed_at":"2024-11-21T17:16:10.418Z","dependency_job_id":"7575a292-dd63-4c9d-9190-a69035b63f44","html_url":"https://github.com/jdtsmith/SplitView","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/jdtsmith/SplitView","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2FSplitView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2FSplitView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2FSplitView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2FSplitView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdtsmith","download_url":"https://codeload.github.com/jdtsmith/SplitView/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2FSplitView/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010791,"owners_count":26084807,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-21T13:39:21.798Z","updated_at":"2025-10-12T08:38:56.008Z","avatar_url":"https://github.com/jdtsmith.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SplitView   ![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/jdtsmith/SplitView.svg?label=Version)\n\n\n![SplitView in Action](https://raw.githubusercontent.com/jdtsmith/SplitView/master/sv.png)\n\n`SplitView` is a [Hammerspoon](https://www.hammerspoon.org) Spoon which can automate the painful chore of putting two windows side by side in MacOS's fullscreen split-view mode.  Using it is simple: just navigate to the first window you'd like in the split view, invoke the assigned key shortcut, choose another window from the popup (with search and shortcuts; see above), and then watch the magic happen. You can also create special bindings to search by application and/or window name, or even invoke `SplitView` from the command line.  And as a bonus, you can bind shortcut keys to toggle focus while in split view from one side to the other, swap the two Split View windows left and right, or remove a full screen space (single or split-view).\n\nImportant points:\n* `SplitView` relies on the `spaces` API.  This _must_ be installed for `SplitView` to work; see https://github.com/asmagill/hs._asm.spaces.  Note that the old \"undocumented\" spaces module is no longer supported or compatible. The spaces extension is a work in progress, so caveat splitviewor. \n* Requires Hammerspoon v0.9.79 or later and works on MacOS 14.1 or later.  For releases compatible with earlier MacOS versions, see [releases](https://github.com/jdtsmith/SplitView/releases).\n* This tool works by _simulating_ the split-view user interface: a long green-button click followed by clicking the appropriate tile-left/right menu item, followed by a 2nd window click on the chosen miniature window.  This requires a short time delay to work reliably (to wait for mini-windows to move fully into position).  If this is unreliable for you (e.g. if you get max iteration errors), trying increasing this (see `delay` variable in [the reference](http://htmlpreview.github.io/?https://github.com/jdtsmith/SplitView/blob/master/html/SplitView.html).\n* `SplitView` uses `hw.window.filter` to try to ignore atypical windows (menu panes, etc.), which see.  Unrecognized non-standard windows may interfere with `SplitView`'s operation.\n* In addition to the normal `choose` binding, you can bind numerous additional hotkeys to customize which windows are considered for split-view.  You can also specify bindings for special commands `removeDesktop`, `swapWindows`, and `switchFocus` (see [`bindHotkeys` docs](https://htmlpreview.github.io/?https://github.com/jdtsmith/SplitView/blob/master/html/SplitView.html#bindHotkeys)).\n\nExample config in your `~/.hammerspoon/init.lua`:\n```\n\nmash =      {\"ctrl\", \"cmd\"}\nmashshift = {\"ctrl\", \"cmd\",\"shift\"}\n-- SplitView for Split Screen \nhs.spoons.use(\"SplitView\",\n\t      {config = {tileSide=\"right\"},\n\t       hotkeys={choose={mash,\"e\"},\n\t       \t\tchooseAppEmacs={mashshift,\"e\",\"Emacs\"},\n\t       \t\tchooseAppWin130={mashshift,\"o\",\"Terminal\",\"130\"},\n\t       \t\tremoveDesktop={mashshift,\"k\"},\n\t       \t\tswapWindows={mashshift,\"x\"},\n\t       \t\tswitchFocus={mash,\"x\"}}})\n```\n\nIn words, this sets `Cmd-Ctrl-e` to invoke normal (all window) `SplitView`, `Cmd-Ctrl-o` to `SplitView` the current window with a window of the Terminal application with \"130\" in its window title, `Cmd-Ctrl-Shift-k` to close the the split-view (or fullscreen) space, `Cmd-Ctrl-Shift-x` to swap the split-view windows left to right, and `Cmd-Ctrl-x` to switch focus between split view windows.\n\nTo install, just [download](https://github.com/jdtsmith/SplitView/releases/latest) `SplitView.spoon.zip` and double-click it!\nSee [the docs](http://htmlpreview.github.io/?https://github.com/jdtsmith/SplitView/blob/master/html/SplitView.html) for complete information on configuring `SplitView`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdtsmith%2Fsplitview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdtsmith%2Fsplitview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdtsmith%2Fsplitview/lists"}