All Projects → pit-ray → Win Vind

pit-ray / Win Vind

Licence: mit
Simple Vim Key Binder for Windows. You can operate Windows with keybindings like Vim.

Projects that are alternatives of or similar to Win Vind

react-shortcut
Convenient React component that detects if the given key combination is pressed, and triggers a callback
Stars: ✭ 16 (-89.4%)
Mutual labels:  hotkeys, hotkey
swhkd
Sxhkd clone for Wayland (works on TTY and X11 too) | mirrored at https://git.sr.ht/~shinyzenith/swhkd
Stars: ✭ 215 (+42.38%)
Mutual labels:  hotkeys, hotkey
hotkey
⌨️ cross-platform hotkey package
Stars: ✭ 82 (-45.7%)
Mutual labels:  hotkeys, hotkey
webplayer-hotkeys
A Chrome extension that assigns hotkeys to play/pause, and switch musics (next and previous). Works with Spotify, Deezer, SoundCloud and Youtube
Stars: ✭ 16 (-89.4%)
Mutual labels:  hotkeys, hotkey
Rbtray
A fork of RBTray from http://sourceforge.net/p/rbtray/code/.
Stars: ✭ 365 (+141.72%)
Mutual labels:  hotkey, mouse
keybind
ClojureScript key bindings (shortcut) library
Stars: ✭ 85 (-43.71%)
Mutual labels:  hotkeys, hotkey
hotscript
HotScript - Revolutionizing how Windows works.
Stars: ✭ 29 (-80.79%)
Mutual labels:  mouse, hotkey
Xboxkeyboardmouse
Keyboard and mouse for Xbox One streaming on Windows 10
Stars: ✭ 235 (+55.63%)
Mutual labels:  mouse, gui
Lazykube
⎈ The lazier way to manage kubernetes.
Stars: ✭ 369 (+144.37%)
Mutual labels:  mouse, gui
Keymage
Yet Another JS Keybinding library
Stars: ✭ 325 (+115.23%)
Mutual labels:  hotkeys, hotkey
react-hotkey-tooltip
A global Hotkey provider with built in tooltip for React
Stars: ✭ 34 (-77.48%)
Mutual labels:  hotkeys, hotkey
Fabgl
Display Controller (VGA, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal for the ESP32
Stars: ✭ 534 (+253.64%)
Mutual labels:  mouse, gui
Hotkeys
➷ A robust Javascript library for capturing keyboard input. It has no dependencies.
Stars: ✭ 5,165 (+3320.53%)
Mutual labels:  hotkeys, hotkey
Repeat
Cross-platform mouse/keyboard record/replay and automation hotkeys/macros creation, and more advanced automation features.
Stars: ✭ 763 (+405.3%)
Mutual labels:  hotkey, mouse
Docker X11 Bridge
Simple Xpra X11 bridge to enable GUI with any docker image
Stars: ✭ 143 (-5.3%)
Mutual labels:  gui
Umbrella
"A collection of functional programming libraries that can be composed together. Unlike a framework, thi.ng is a suite of instruments and you (the user) must be the composer of. Geared towards versatility, not any specific type of music." — @loganpowell via Twitter
Stars: ✭ 2,186 (+1347.68%)
Mutual labels:  gui
Java Rpg Maker Mv Decrypter
You can decrypt whole RPG-Maker MV Directories with this Program, it also has a GUI.
Stars: ✭ 142 (-5.96%)
Mutual labels:  gui
Laravel Paket
Composer GUI. Manage Laravel dependencies from web interface without switching to command line!
Stars: ✭ 143 (-5.3%)
Mutual labels:  gui
Zookeeper Visualizer
zookeeper的可视化管理工具
Stars: ✭ 150 (-0.66%)
Mutual labels:  gui
Omnigui
A cross-platform GUI framework from scratch just to learn
Stars: ✭ 147 (-2.65%)
Mutual labels:  gui

win-vind

Simple Vim Key Binder for Windows

Code status Build status
Coverity Codacy MinGW-w64 Visual Studio 2019
Coverity Scan Build Status

Description

win-vind provides the lightweight hybrid UI system of CUI and GUI. Its core idea is to add a new mode layer to operate GUI when you want to transition from Vim to other windows for a short while.

There are five main features.

1. GUI Operation like Vim

You can operate windows, a mouse cursor , virtual desktops, GUI-objects with key-bindings like Vim.

EasyClick Demo (default: FF, Fa, Fm, Fh)
It works well in Win32 or UWP applications.

  

Window Control Demo

2. Vim emulation everywhere

It enables to emulate Vim when using general text editors, for instance, notepad.exe or Microsoft Office Word.

Demo
    

3. Mode Management like Vim

There are two main modes: GUI Mode for GUI operation and Editor Mode for Vim emulation.

4. Process Control

If you register notepad.exe as notepad, could launch it by typing :!notepad like below.

Demo

5. Using from command line

You can operate win-vind from command lines.

Example

$ ./win-vind.exe --func change_to_normal

Therefore, it enables to make Vim link to GUI or use from AutoHotKey.

If you add next scripts into .vimrc, you can switch a mode to operate GUI with :GUINormal.

Plug 'skywind3000/asyncrun.vim'

command! GUINormal :AsyncRun win-vind -f change_to_normal

If you add next scripts into AHK Script, you can call each function.

#f::Run, win-vind -f easy_click_left
#a::Run, win-vind -f arrange_windows

Refer to Link With Vim - win-vind. If you want to know the details, refer to Cheat Sheet - win-vind.

Download

3.2.2 (Latest Version)

Date: 2021/2/28

32bit

64bit

Usage

You can call a pre-defined function with favorite keybindings. The above-stated mode management has the following features, and all modes can have functions to switch to each mode with your keybindings. All modes have presets of keybindings.

Mode                                     Features
GUI Normal, Edi Normal All keys except hotkeys will be disabled. Therefore, recommended to include functions to transit to Insert Mode.
GUI Insert, Edi Insert Inputted keys will not be disabled and are transmitted normally to other applications. When the commands are detected, a function will be called.
GUI Visual It holds right-click.
Edi Visual, Edi Visual Line Each function works on the assumption you hold down a shift key.
Command This is shared Editor mode and GUI mode. A virtual command line is launched, and Enter is available to decide and BackSpace is available to erase. You can move the history with Up and Down.

Please visit How to use - win-vind for details.

Demo
You can change default bindings.

Default Key Config

Window Control
|Binding|Command|Meanings| |:---:|:---:|:---| |<C-w>s|:switch|Switch windows| |<C-w>q|:close|Close a current window| |<C-w>n|:new|Open a new window| |-|:split|Open a new window with hsplit| |-|:vsplit|Open a new window with vsplit| |<C-w>h|-|Select a left window| |<C-w>l|-|Select a right window| |<C-w>k|-|Select an upper window| |<C-w>j|-|Select a lower window| |<C-w>H|:lsplit|Snap a current window to left| |<C-w>L|:rsplit|Snap a current window to right| |<C-w>K|:tsplit|Snap a current window to top| |<C-w>J|:bsplit|Snap a current window to bottom| |<C-w>=|:arrange|Arrange windows| |<C-w>r|:rotate|Rotate windows| |<C-w>R|:rerotate|Rotate windows in reverse| |<C-w>x|:exchange|Exchange a window with nearest one| |-|:resize <num>|Resize the height of a window| |<C-w>+|:resize +<num>|Increase the height of a window| |<C-w>-|:resize -<num>|Decrease the height of a window| |-|:vertical resize <num>|Resize the width of a window| |<C-w><gt>|:vertical resize +<num>|Increase the width of a window| |<C-w><lt>|:vertical resize -<num>|Decrease the width of a window|

Mouse Control
|Binding|Command|Meanings| |:---:|:---:|:---| |o|-|Left Click| |a|-|Right Click| |FF, Fo|:ecl|EasyClick (Left Click) (hinting feature)| |Fa|:ecr|EasyClick (Right Click)| |Fm|:ecm|EasyClick (Mid Click)| |Fh|:ech|EasyClick (Hovering)| |h|-|Move Cursor Left| |j|-|Move Cursor Down| |k|-|Move Cursor Up| |l|-|Move Cursor Right| |0|-|Jump Cursor to Left| |f|-|Jump Cursor by Keyboard Mapping| |<C-y>|-|Scroll Up| |<C-e>|-|Scroll Down|j

Virtual Desktop Control
|Binding|Command|Meanings| |:---:|:---:|:---| |<C-v>h|-|Switch Virtual Desktop to Left| |<C-v>l|-|Switch Virtual Desktop to Right|

Mode Control |Binding|Command|Meanings| |:---:|:---:|:---| |<Esc-Left>|-|Change to GUI Normal| |i|-|Change to GUI Insert| |v|-|Change to GUI Visual| |I|-|Change to Editor Normal| |i|-|Change to Editor Insert| |v|-|Change to Editor Visual| |V|-|Change to Editor Line Visual|

Process Launcher
|Binding|Command|Meanings| |:---:|:---:|:---| |-|:sh, :term|Start Command Prompt| |-|:!<any>|Start Any Application|

Utilities
|Binding|Command|Meanings| |:---:|:---:|:---| |-|:w|Save Opened File| |-|:mkdir <any>|Make Directories| |<gt>|-|Move to Next Page| |<lt>|-|Move to Previous Page| |u|-|Undo| |<C-r>|-|Redo| |y|-|Copy| |p|-|Paste| |dd|-|Cut| |x|-|Delete|

Others
|Binding|Command|Meanings| |:---:|:---:|:---| |-|:set|Show Config Window of win-vind| |-|:exit|Exit win-vind|

However, there are more functions, so if you want more details, please see the CheatSheet.

How to contribute

Please read its architecture at architecture.md.

Quick Start for Build

If you have already installed MinGW-w64 or Visual Studio 2019, all you need is the next steps.

1. Install needed libraries into a root directory of win-vind.

$ ./setup_libs.bat [-mingw/-msvc] [32/64]

2. Build its project.

$ ./build.bat [-debug/-release] [-mingw/-msvc] [32/64]  

3. Finish!

If you want to contribute, please visit How to contribute - win-vind.

ToDo

It is the difference between master and latest release.

State Description Type Priority
Support multi-thread drawing in EasyClick Improve High
Rotate windows without arrangement Feature High
Improve customizability (preset feature like a gaming device utility? or customize like .vimrc?) Architecture High
Add test codes Improve High
Refactor directory structure. Improve High
Add global namespace Improve High
Change KeyLogger from STL to packaged classes. Architecture High
Prohibit repeating key-stroke in EasyClick Bug Mid
Bug reporting feature Feature Mid
Implement E or e in Editor Mode with UI Automation. Feature Mid
Add a reference option in a command line. Feature Mid
Update Notification Feature Mid
Support multi-monitor in Exchange windows Improve Mid
Support multi-monitor in Snap window Improve Mid
Ready Move left-upper point of a window when the height or the width are over in Resize Window Feature Mid
Implement simeji/winresizer in GUI Feature Low
Registration of keybindings by pressing keys. Feature Low
Modern GUI (use WinUI3 or Flutter2?) Change Low

License

This software is provided by MIT License.

Author

  • pit-ray
    [E-mail] pit-ray(at)outlook.com
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].