{"id":13714283,"url":"https://github.com/ayuanx/Gosture","last_synced_at":"2025-05-07T01:33:08.220Z","repository":{"id":92149800,"uuid":"146241539","full_name":"ayuanx/Gosture","owner":"ayuanx","description":"Gosture is a Linux X Window system productivity tool, written in Go language. Gosture implements system-wide customizable mouse gestures as well as keyboard shortcuts. ","archived":false,"fork":false,"pushed_at":"2022-05-13T15:07:43.000Z","size":4959,"stargazers_count":11,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-03T23:30:09.125Z","etag":null,"topics":["gesture","go","golang","hotkey","linux","mouse","x11","xwindow"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/ayuanx.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}},"created_at":"2018-08-27T03:19:33.000Z","updated_at":"2024-01-12T15:49:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"7028ab57-0889-48eb-a304-294bfbbf765e","html_url":"https://github.com/ayuanx/Gosture","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuanx%2FGosture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuanx%2FGosture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuanx%2FGosture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuanx%2FGosture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ayuanx","download_url":"https://codeload.github.com/ayuanx/Gosture/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224551212,"owners_count":17330100,"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":["gesture","go","golang","hotkey","linux","mouse","x11","xwindow"],"created_at":"2024-08-02T23:01:56.276Z","updated_at":"2024-11-14T01:30:55.553Z","avatar_url":"https://github.com/ayuanx.png","language":"Go","funding_links":[],"categories":["Repositories"],"sub_categories":[],"readme":"# Gosture\n**By AyuanX, 22-Aug-2018**\n___________________\n\n## What is Gosture\nGosture is a Linux X Window system productivity tool, written in Go language.  \nGosture implements system-wide customizable mouse gestures as well as keyboard shortcuts. \n\n## How to use Gosture\n1. Prepare your Gosture configuration file at `~/.Gosture.cfg`.  \n   An example of configuration file is provided as `Gosture_Config_Example.txt`.  \n   You can use it as a starting point. E.g. run `cp Gosture_Config_Example.txt ~/.Gosture.cfg`\n2. Tweak the configuration to your needs. (Check detailed instructions below.)\n3. Run Gosture in background and enjoy the mouse gestures and keyboard shortcuts. E.g. run `nohup ./Gosture \u0026`  \n   After launching, you can control it through the icon in system tray.  \n   Tip: you can add it into your X Window Startup Applications so that it automatically runs at your login.\n\nThe following operations are defined by default in the provided configuration example:\n\nOperation | Action  \n--------- | ------\nMouse Middle Button | Trigger a mouse gesture\nGesture ↙ | Minimize active window\nGesture ↗ | Maximize / Restore active window\nGesture ↓→ | Close active window\nGesture ↑ | Scroll to top (Equivalent to Home key)\nGesture ↓ | Scroll to bottom (Equivalent to End key)\nGesture ← | Copy selection to clipboard (Equivalent to Ctrl+Insert)\nGesture → | Paste from clipboard (Equivalent to Shift+Insert)\nGesture ↑↓ | Snap window to top edge (Equivalent to Super+Up)\nGesture ↓↑ | Snap window to bottom edge (Equivalent to Super+Down)\nGesture ←→ | Snap window to left edge (Equivalent to Super+Left)\nGesture →← | Snap window to right edge (Equivalent to Super+Right)\nSuper+Alt+Z | Run gedit *(Super key is also known as Windows key)*\nSuper+Alt+X | Run terminal *(Super key is also known as Windows key)*\nSuper+Alt+C | Run calculator *(Super key is also known as Windows key)*\n\n## How to configure Gosture\nGosture configuration file `~/.Gosture.cfg` is a standard JSON file.\n\nOption | Description\n------ | -----------\n`mouse-gesture-enable`  |\t`true`: enable mouse gesture; `false`: disable mouse gesture\n`mouse-gesture-trigger` |\tcan be a single **[Mouse Button]** like `2`; or a **[Modifier Key]-[Mouse Button]** combination, like `Control-2`\n\n### Definition of mouse buttons:\n\nMouse Button | Description\n--- | ---\n`1` | Left Button\n`2` | Middle Button\n`3` | Right Button\n`4` | Scroll Up\n`5` | Scroll Down\n\n### Definition of keys:\n\nModifier Key | Description\n------------ | -----------\n`Shift` | Shift Key\n`Lock` | Caps Lock Key\n`Control` | Ctrl Key\n`Mod1` | Alt Key\n`Mod2` | Num Lock Key\n`Mod3` | *(Usually not mapped to any physical key)*\n`Mod4` | Super Key (also known as Windows Key) \n`Mod5` | AltGr Key (usually absent on US keyboard) \n* To get an acurate list of all modifier keys in your system, run `xmodmap`.\n* To find a specific key name, run `xev`.  \n   You can also reference these documents:  \n   http://xahlee.info/linux/linux_show_keycode_keysym.html  \n   http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap\n\n### Definition of mouse gestures:\nAll eight directions are supported; directions are mapped to digits on **Num Pad**.\n\n.       | .       | .\n ------ | ------- | ------\n`7` (↖) | `8` (↑) | `9` (↗)\n`4` (←) |         | `6` (→)\n`1` (↙) | `2` (↓) | `3` (↘)\n* For example: gesture of \"↑→\" is `86`; gesture of \"↖↘\" is `73`; gesture of \"←↓→\" is `426`.  \n  Tip: Mixture of orthogonal stroke and diagonal stroke in one gesture (like \"↗→\" or \"↙↓↘\") is supported, but not recommended.\n\n\n### Current supported actions:\n\nAction | Description\n------ | -----------\n`minwin`    | Minimize active window\n`maxwin`    | Maximize active window / Restore it if already maximized\n`closewin` | Close active window\n`key,[key1],[key2],...` | Send a key combination. Each key is delimited by comma\n`cmd,[executable],[dir]`\t| Run [executable], can be a program or script with arguments. [dir] is optional working directory\n\n## Dependencies and credits\n* https://github.com/BurntSushi/xgbutil\n* https://github.com/mattn/go-shellwords\n* https://github.com/getlantern/systray\n* https://github.com/skratchdot/open-golang\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayuanx%2FGosture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayuanx%2FGosture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayuanx%2FGosture/lists"}