Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ayuanx/Gosture
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.
https://github.com/ayuanx/Gosture
gesture go golang hotkey linux mouse x11 xwindow
Last synced: 28 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/ayuanx/Gosture
- Owner: ayuanx
- License: gpl-3.0
- Created: 2018-08-27T03:19:33.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-05-13T15:07:43.000Z (over 2 years ago)
- Last Synced: 2024-08-03T23:30:09.125Z (4 months ago)
- Topics: gesture, go, golang, hotkey, linux, mouse, x11, xwindow
- Language: Go
- Size: 4.73 MB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-golang-repositories - Gosture - wide customizable mouse gestures as well as keyboard shortcuts. (Repositories)
README
# Gosture
**By AyuanX, 22-Aug-2018**
___________________## What is Gosture
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.## How to use Gosture
1. Prepare your Gosture configuration file at `~/.Gosture.cfg`.
An example of configuration file is provided as `Gosture_Config_Example.txt`.
You can use it as a starting point. E.g. run `cp Gosture_Config_Example.txt ~/.Gosture.cfg`
2. Tweak the configuration to your needs. (Check detailed instructions below.)
3. Run Gosture in background and enjoy the mouse gestures and keyboard shortcuts. E.g. run `nohup ./Gosture &`
After launching, you can control it through the icon in system tray.
Tip: you can add it into your X Window Startup Applications so that it automatically runs at your login.The following operations are defined by default in the provided configuration example:
Operation | Action
--------- | ------
Mouse Middle Button | Trigger a mouse gesture
Gesture ↙ | Minimize active window
Gesture ↗ | Maximize / Restore active window
Gesture ↓→ | Close active window
Gesture ↑ | Scroll to top (Equivalent to Home key)
Gesture ↓ | Scroll to bottom (Equivalent to End key)
Gesture ← | Copy selection to clipboard (Equivalent to Ctrl+Insert)
Gesture → | Paste from clipboard (Equivalent to Shift+Insert)
Gesture ↑↓ | Snap window to top edge (Equivalent to Super+Up)
Gesture ↓↑ | Snap window to bottom edge (Equivalent to Super+Down)
Gesture ←→ | Snap window to left edge (Equivalent to Super+Left)
Gesture →← | Snap window to right edge (Equivalent to Super+Right)
Super+Alt+Z | Run gedit *(Super key is also known as Windows key)*
Super+Alt+X | Run terminal *(Super key is also known as Windows key)*
Super+Alt+C | Run calculator *(Super key is also known as Windows key)*## How to configure Gosture
Gosture configuration file `~/.Gosture.cfg` is a standard JSON file.Option | Description
------ | -----------
`mouse-gesture-enable` | `true`: enable mouse gesture; `false`: disable mouse gesture
`mouse-gesture-trigger` | can be a single **[Mouse Button]** like `2`; or a **[Modifier Key]-[Mouse Button]** combination, like `Control-2`### Definition of mouse buttons:
Mouse Button | Description
--- | ---
`1` | Left Button
`2` | Middle Button
`3` | Right Button
`4` | Scroll Up
`5` | Scroll Down### Definition of keys:
Modifier Key | Description
------------ | -----------
`Shift` | Shift Key
`Lock` | Caps Lock Key
`Control` | Ctrl Key
`Mod1` | Alt Key
`Mod2` | Num Lock Key
`Mod3` | *(Usually not mapped to any physical key)*
`Mod4` | Super Key (also known as Windows Key)
`Mod5` | AltGr Key (usually absent on US keyboard)
* To get an acurate list of all modifier keys in your system, run `xmodmap`.
* To find a specific key name, run `xev`.
You can also reference these documents:
http://xahlee.info/linux/linux_show_keycode_keysym.html
http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap### Definition of mouse gestures:
All eight directions are supported; directions are mapped to digits on **Num Pad**.. | . | .
------ | ------- | ------
`7` (↖) | `8` (↑) | `9` (↗)
`4` (←) | | `6` (→)
`1` (↙) | `2` (↓) | `3` (↘)
* For example: gesture of "↑→" is `86`; gesture of "↖↘" is `73`; gesture of "←↓→" is `426`.
Tip: Mixture of orthogonal stroke and diagonal stroke in one gesture (like "↗→" or "↙↓↘") is supported, but not recommended.### Current supported actions:
Action | Description
------ | -----------
`minwin` | Minimize active window
`maxwin` | Maximize active window / Restore it if already maximized
`closewin` | Close active window
`key,[key1],[key2],...` | Send a key combination. Each key is delimited by comma
`cmd,[executable],[dir]` | Run [executable], can be a program or script with arguments. [dir] is optional working directory## Dependencies and credits
* https://github.com/BurntSushi/xgbutil
* https://github.com/mattn/go-shellwords
* https://github.com/getlantern/systray
* https://github.com/skratchdot/open-golang