All Projects → godbout → kindaVim.theapp

godbout / kindaVim.theapp

Licence: other
Ultimate Vim Mode for macOS

Projects that are alternatives of or similar to kindaVim.theapp

Neatinput
A .NET standard project which aims to make keyboard and mouse input monitoring easy on Windows and eventually Linux.
Stars: ✭ 89 (-76.08%)
Mutual labels:  keyboard, input
WWDCNotes
WWDCNotes.com content
Stars: ✭ 343 (-7.8%)
Mutual labels:  accessibility, swiftui
Evscript
A tiny sandboxed Dyon scripting environment for evdev input devices that lets you do e.g. xcape in Wayland
Stars: ✭ 91 (-75.54%)
Mutual labels:  keyboard, input
Jquery Rslitegrid
Input tabular data with your keyboard
Stars: ✭ 5 (-98.66%)
Mutual labels:  keyboard, input
dasher-web
Dasher text entry in HTML, CSS, JavaScript, and SVG
Stars: ✭ 34 (-90.86%)
Mutual labels:  keyboard, accessibility
Inputsystem
An efficient and versatile input system for Unity.
Stars: ✭ 1,013 (+172.31%)
Mutual labels:  keyboard, input
Enigo
Cross platform input simulation in Rust
Stars: ✭ 254 (-31.72%)
Mutual labels:  keyboard, input
jyutping
Cantonese Jyutping Keyboard for iOS. 粵語粵拼輸入法鍵盤
Stars: ✭ 23 (-93.82%)
Mutual labels:  keyboard, swiftui
mouseable
'Mouseable' is intended to replace a mouse or trackpad.
Stars: ✭ 418 (+12.37%)
Mutual labels:  keyboard, accessibility
KeyboardKitPro
KeyboardKit Pro extends KeyboardKit with pro features.
Stars: ✭ 42 (-88.71%)
Mutual labels:  keyboard, swiftui
Input Overlay
Show keyboard, gamepad and mouse input on stream
Stars: ✭ 684 (+83.87%)
Mutual labels:  keyboard, input
keynavish
Control the mouse with the keyboard, on Windows.
Stars: ✭ 59 (-84.14%)
Mutual labels:  keyboard, accessibility
Gainput
Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch
Stars: ✭ 636 (+70.97%)
Mutual labels:  keyboard, input
On Screen Keyboard
A jQuery plug-in which provides users with a fluid-width on-screen keyboard.
Stars: ✭ 63 (-83.06%)
Mutual labels:  keyboard, accessibility
input-event
🎹 Read and parse input device(like mouse, keyboard, joystick and IR-Remote)'s event data.
Stars: ✭ 45 (-87.9%)
Mutual labels:  keyboard, input
Ally.js
JavaScript library to help modern web applications with accessibility concerns
Stars: ✭ 1,447 (+288.98%)
Mutual labels:  keyboard, accessibility
openinput
Open source firmware for input devices
Stars: ✭ 43 (-88.44%)
Mutual labels:  keyboard, input
LowLevelInput.Net
A thread safe and event driven LowLevelMouse and LowLevelKeyboard Hook
Stars: ✭ 32 (-91.4%)
Mutual labels:  keyboard, input
ck550-macos
MacOS effect control SW for a CoolMaster CK550 & CK530 Keyboard (US Layout).
Stars: ✭ 14 (-96.24%)
Mutual labels:  keyboard, macos-app
AStack
The Missing SwiftUI Adaptive and Accessible Stacks Library.
Stars: ✭ 110 (-70.43%)
Mutual labels:  accessibility, swiftui

kindaVim brings Vim moves to macOS Input Fields and UI Elements.

awesome stuff happening in there


The Site

kindavim.app for all the fancy stuff.

Why kindaVim

Vim moves anywhere? That's fucking cool. Also kV makes using the keyboard more consistent on the whole macOS, where sometimes CTRL-P/CTRL-N works to go up/down lists, and sometimes it doesn't. Very annoying.

License

Unlimited trial. The trial is: without a coffee a month kindaVim sleeps in the mornings. (It will scold you from the Menu Bar when you'll try to use it.) You're still able to use it fully-featured the afternoons. (Until 5am the next day. Those are long afternoons, yes.) So if you're like me and spend your mornings reading, swimming in the open sea or climbing rocks, then kV is basically free.

Current Vim Implementation

Motions

kV Accessibility Strategy: text manipulation; accurate.

kV detects automatically which Strategy to use, but sometimes you may wish to enforce the Keyboard Strategy even when the text is Accessible. You can do so by pressing fn while doing a move. This is useful when you're in a text input but want to scroll through the UI (scrollbars) rather than the text/caret, or to move from one input to another in some apps with custom UI.

See the current implementation.

kV Keyboard Strategy: keyboard remapping; less accurate.

See the current implementation.

Commands

See the current implementation.

APIs

kindaVim sends Distributed Notifications to macOS when the Vim Mode changes, so that you can hook an external tool like BetterTouchTool or Hammerspoon and respond to those changes. The Notifications Names should be self-explanatory:

  • kindaVimDidEnterInsertMode
  • kindaVimDidExitInsertMode
  • kindaVimDidEnterNormalMode
  • kindaVimDidExitNormalMode
  • kindaVimDidEnterVisualMode
  • kindaVimDidExitVisualMode
  • kindaVimDidEnterOperatorPendingMode
  • kindaVimDidExitOperatorPendingMode

Sync your Preferences

Currently the Preferences are a plist file located at ~/Library/Preferences/mo.com.sleeplessmind.kindaVim.plist. You can add it to your dotfiles, or use a tool like Mackup to keep the Preferences in sync between your computers. (Mackup explicitely supports kindaVim.)

Feedback

  • whether you need a missing move, want to report a bug or ask for a feature, just open an issue.

AccessibilityStrategyTestApp

Testing the Vim moves when using the macOS Accessibility requires building an external app. This app, as well as the tests of each move in the context of the Accessibility Strategy, are open source and available here: AccessibilityStrategyTestApp

Alternatives

Acknowledgments

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].