{"id":15877066,"url":"https://github.com/nlewo/swayctl","last_synced_at":"2026-03-02T13:03:13.742Z","repository":{"id":45992481,"uuid":"243875457","full_name":"nlewo/swayctl","owner":"nlewo","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-19T14:35:34.000Z","size":56,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-22T05:53:51.924Z","etag":null,"topics":["client","sway","wayland","xmonad"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nlewo.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}},"created_at":"2020-02-28T23:57:15.000Z","updated_at":"2025-12-19T14:35:39.000Z","dependencies_parsed_at":"2022-07-20T05:17:49.479Z","dependency_job_id":null,"html_url":"https://github.com/nlewo/swayctl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nlewo/swayctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlewo%2Fswayctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlewo%2Fswayctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlewo%2Fswayctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlewo%2Fswayctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nlewo","download_url":"https://codeload.github.com/nlewo/swayctl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlewo%2Fswayctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30003477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T12:19:43.414Z","status":"ssl_error","status_checked_at":"2026-03-02T12:19:02.215Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["client","sway","wayland","xmonad"],"created_at":"2024-10-06T02:01:21.045Z","updated_at":"2026-03-02T13:03:13.721Z","avatar_url":"https://github.com/nlewo.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"The [Xmonad Dynamic Workspace](https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Actions-DynamicWorkspaces.html) behavior for Sway.\n\nBasically, it allows to create named workspaces and dynamically bind\nthem to indexes (from 1 to 10) in order to access them quickly.\n\n\n### Getting started\n\nWithout flakes (before nix 2.4):\n\n```sh\nnix run -f https://github.com/nlewo/swayctl/archive/master.tar.gz -c swayctl --help\n```\n\nWith flakes (nix 2.4):\n\n```sh\nnix run github:nlewo/swayctl -- --help\n```\n\n### The `swayctl` usage\n\n    swayctl\n\n    USAGE:\n        swayctl [FLAGS] \u003cSUBCOMMAND\u003e\n\n    FLAGS:\n        -d               Debug commands\n        -h, --help       Prints help information\n        -V, --version    Prints version information\n\n    SUBCOMMANDS:\n        bind            Bind a workspace to an index. The destination workspace must have a name\n        help            Prints this message or the help of the given subcommand(s)\n        list            List all workspaces\n        move            Move a container to a workspace\n        rename          Rename a workspace\n        show-by-name    Show a workspace by it's name\n        show-by-num     Show a workspace by it's number\n        swap            Swap visible workspaces\n\n\n### My Sway configuration\n\n    bindsym --to-code {\n      $mod+1 exec swayctl show-by-num 1\n      $mod+2 exec swayctl show-by-num 2\n      $mod+3 exec swayctl show-by-num 3\n      $mod+4 exec swayctl show-by-num 4\n      $mod+5 exec swayctl show-by-num 5\n      $mod+6 exec swayctl show-by-num 6\n      $mod+7 exec swayctl show-by-num 7\n      $mod+8 exec swayctl show-by-num 8\n      $mod+9 exec swayctl show-by-num 9\n      $mod+0 exec swayctl show-by-num 10\n\n      $mod+Control+1 exec swayctl bind 1\n      $mod+Control+2 exec swayctl bind 2\n      $mod+Control+3 exec swayctl bind 3\n      $mod+Control+4 exec swayctl bind 4\n      $mod+Control+5 exec swayctl bind 5\n      $mod+Control+6 exec swayctl bind 6\n      $mod+Control+7 exec swayctl bind 7\n      $mod+Control+8 exec swayctl bind 8\n      $mod+Control+9 exec swayctl bind 9\n      $mod+Control+0 exec swayctl bind 10\n    }\n\n    # Move a container to a named workspace\n    bindsym $mod+Shift+x exec swayctl list | dmenu -p \"Move container to workspace: \" | xargs swayctl move\n\n    # Switch or create a named workspace\n    # Tip: use Shift+Return to ignore the completion of dmenu\n    bindsym $mod+x exec swayctl list | dmenu -p \"Show or create workspace: \" | xargs -I{} swayctl show-by-name \"{}\"\n\n    # Rename the current workspace\n    bindsym $mod+Shift+Control+x exec echo \"\" | dmenu -p \"Rename workspace: \" | xargs swayctl rename\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlewo%2Fswayctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnlewo%2Fswayctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlewo%2Fswayctl/lists"}