{"id":16940868,"url":"https://github.com/iberianpig/fusuma-plugin-wmctrl","last_synced_at":"2025-04-07T16:19:08.954Z","repository":{"id":45280262,"uuid":"214678072","full_name":"iberianpig/fusuma-plugin-wmctrl","owner":"iberianpig","description":"Window Manager plugin for Fusuma","archived":false,"fork":false,"pushed_at":"2024-07-14T02:22:27.000Z","size":78,"stargazers_count":41,"open_issues_count":0,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-10-14T21:08:05.579Z","etag":null,"topics":["fusuma","fusuma-plugin","linux","window-manager","wmctrl","workspace-manager"],"latest_commit_sha":null,"homepage":"https://github.com/iberianpig/fusuma#available-plugins","language":"Ruby","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/iberianpig.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2019-10-12T16:22:16.000Z","updated_at":"2024-10-09T16:45:02.000Z","dependencies_parsed_at":"2024-10-22T22:32:16.073Z","dependency_job_id":null,"html_url":"https://github.com/iberianpig/fusuma-plugin-wmctrl","commit_stats":{"total_commits":53,"total_committers":4,"mean_commits":13.25,"dds":0.05660377358490565,"last_synced_commit":"7f13bee674683d777b60ddeeaa9dca1fa754a0c1"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iberianpig%2Ffusuma-plugin-wmctrl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iberianpig%2Ffusuma-plugin-wmctrl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iberianpig%2Ffusuma-plugin-wmctrl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iberianpig%2Ffusuma-plugin-wmctrl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iberianpig","download_url":"https://codeload.github.com/iberianpig/fusuma-plugin-wmctrl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247685634,"owners_count":20979085,"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":["fusuma","fusuma-plugin","linux","window-manager","wmctrl","workspace-manager"],"created_at":"2024-10-13T21:08:08.151Z","updated_at":"2025-04-07T16:19:08.917Z","avatar_url":"https://github.com/iberianpig.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fusuma::Plugin::Wmctrl [![Gem Version](https://badge.fury.io/rb/fusuma-plugin-wmctrl.svg)](https://badge.fury.io/rb/fusuma-plugin-wmctrl) [![Build Status](https://github.com/iberianpig/fusuma-plugin-wmctrl/actions/workflows/main.yml/badge.svg)](https://github.com/iberianpig/fusuma-plugin-wmctrl/actions/workflows/main.yml)\n\n\nWindow Manager plugin for [Fusuma](https://github.com/iberianpig/fusuma)\n\n* Move window or workspace instead of xdotool\n* Works on Wayland(Not depends on xdotool)\n\n## Installation\n\nRun the following code in your terminal.\n\n### 1.Install wmctrl\n\n#### For Debian Based Distros (Ubuntu, Debian, Mint, Pop!_OS)\n\n```\n$ sudo apt install wmctrl -y\n```\n\n#### For Arch Based Distros (Manjaro, Arch)\n\n```\nsudo pacman -S wmctrl\n```\n\n### 2. Install fusuma-plugin-wmctrl\n\nThis plugin requires [Fusuma](https://github.com/iberianpig/fusuma#update) version 1.0 or later.\n\n\n**Note For Arch Based Distros:** By default in Arch Linux, when running `gem`, gems are installed per-user (into `~/.gem/ruby/`), instead of system-wide (into `/usr/lib/ruby/gems/`). This is considered the best way to manage gems on Arch, because otherwise they might interfere with gems installed by Pacman. (From Arch Wiki)\n\nTo install gems system-wide, see any of the methods listed on [Arch Wiki](https://wiki.archlinux.org/index.php/ruby#Installing_gems_system-wide)\n\n```sh\n$ sudo gem install fusuma-plugin-wmctrl\n```\n\n## Properties\n\n### `workspace:` property\nAdd `workspace:` property in `~/.config/fusuma/config.yml`.\n\nValues following are available for `workspace`.\n\n  * `prev` is value to switch current workspace to previous workspace.\n  * `next` is value to switch current workspace to next workspace.\n  * [**[For grid-style workspaces only](#support-grid-style-workspace)**] `up` / `down` / `left` / `right` navigate to the workspace in the direction.\n\n### `window:` property\nAdd `window:` property in `~/.config/fusuma/config.yml`.\n\nValues following are available for `window`.\n\n  * `prev` is value to move active window to previous workspace.\n  * `next` is value to move active window to next workspace.\n  * [**[For grid-style workspaces only](#support-grid-style-workspace)**] `up` / `down` / `left` / `right` move window to the workspace in the direction.\n  * `fullscreen` is value to toggle fullscreen\n    * `fullscreen: toggle` toggles the active window to fullscreen.\n      ```yml\n        window: fullscreen\n        # ↑ same ↓\n        window: \n          fullscreen: toggle\n      ```\n\n    * `fullscreen: add` changes the active window to a fullscreen.\n      ```yml\n        window: \n          fullscreen: add\n      ``` \n\n    * `fullscreen: remove` restores the active window from fullscreen.\n      ```yml\n        window: \n          fullscreen: remove\n      ```\n  * `maximized` is value to toggle maximized\n    * `maximized: toggle` toggles the active window to maximized.\n      ```yml\n        window: maximized\n        # ↑ same ↓\n        window: \n          maximized: toggle\n      ```\n\n    * `maximized: add` changes the active window to a maximized.\n      ```yml\n        window: \n          maximized: add\n      ``` \n\n    * `maximized: remove` restores the active window from maximized.\n      ```yml\n        window: \n          maximized: remove\n      ```\n\n\n## Example\n\nSet `workspace:` property and values in `~/.config/fusuma/config.yml`.\n\n```yaml\nswipe:\n  4:\n    left: \n      workspace: 'next'\n    right: \n      workspace: 'prev'\n```\n\n## Configuration\n\n### Wrap navigation\n\nThe plugin allows to enable (disabled by default) circular navigation between workspaces. To enable it set the following in your config file `~/.config/fusuma/config.yml`.\n\n```yaml\nplugin: \n  executors:\n    wmctrl_executor:\n      wrap-navigation: true\n```\n\n### Support grid-style workspace\n\nFor grid-style workspace users, Fusuma has an option to move workspace up, down, left or right.\nTo enable this option, set `matrix-col-size`.\n\nFor example, for a 3x2 workspace, set `matrix-col-size: 3` to wmctrl_executor option.\n```yaml\nplugin:\n  executors:\n    wmctrl_executor:\n      matrix-col-size: 3\n```\n\nWith this setting, the `up`/`down`/`left`/`right` properties will be enabled on `workspace:` and `window:`.\n\n#### Example\n\n```yaml\nswipe:\n  4:\n    up:\n      workspace: down\n      keypress:\n        LEFTSHIFT:\n          window: down\n    down:\n      workspace: up\n      keypress:\n        LEFTSHIFT:\n          window: up\n    left:\n      workspace: right\n      keypress:\n        LEFTSHIFT:\n          window: right\n    right:\n      workspace: left\n      keypress:\n        LEFTSHIFT:\n          window: left\n\nplugin:\n  executors:\n    wmctrl_executor:\n      matrix-col-size: 3\n```\n\nNOTE: `keypress:` property is enabled with fusuma-plugin-keypress\nhttps://github.com/iberianpig/fusuma-plugin-keypress\n\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/iberianpig/fusuma-plugin-wmctrl. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting in the Fusuma::Plugin::Wmctrl project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/iberianpig/fusuma-plugin-wmctrl/blob/master/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiberianpig%2Ffusuma-plugin-wmctrl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiberianpig%2Ffusuma-plugin-wmctrl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiberianpig%2Ffusuma-plugin-wmctrl/lists"}