All Projects → andweeb → Ki

andweeb / Ki

Licence: mit
⌘ Work in macOS like you work in vim <currently under construction>

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Ki

Hammerspoon
Staggeringly powerful macOS desktop automation with Lua
Stars: ✭ 8,540 (+8795.83%)
Mutual labels:  automation, hammerspoon
Awesome Hammerspoon
awesome configuration for Hammerspoon.
Stars: ✭ 928 (+866.67%)
Mutual labels:  automation, hammerspoon
Install Unity
Script to install Unity 3D versions from the command line on macOS
Stars: ✭ 89 (-7.29%)
Mutual labels:  automation
Aws Workflows On Github
Workflows for automation of AWS services setup from Github CI/CD
Stars: ✭ 95 (-1.04%)
Mutual labels:  automation
Lotus
Kubernetes controller for running load testing
Stars: ✭ 92 (-4.17%)
Mutual labels:  automation
Patrowlhears
PatrowlHears - Vulnerability Intelligence Center / Exploits
Stars: ✭ 89 (-7.29%)
Mutual labels:  automation
Coteafs Appium
📱 Wrapper Appium Framework in Java which supports Automation of Mobile and Tablet apps.
Stars: ✭ 93 (-3.12%)
Mutual labels:  automation
Pybuilder
Software build automation tool for Python.
Stars: ✭ 1,290 (+1243.75%)
Mutual labels:  automation
Terraform Import Github Organization
Script to fully automate Terraform import of Github Org (teams, users, and repos)
Stars: ✭ 95 (-1.04%)
Mutual labels:  automation
Combine Csv Files In The Folder
Tiny script to automate everyday task
Stars: ✭ 91 (-5.21%)
Mutual labels:  automation
Fabric Home Assistant
📜 Deploy Home-Assistant easily with Fabric
Stars: ✭ 94 (-2.08%)
Mutual labels:  automation
Winpwn
Automation for internal Windows Penetrationtest / AD-Security
Stars: ✭ 1,303 (+1257.29%)
Mutual labels:  automation
Ck Tensorflow
Collective Knowledge components for TensorFlow (code, data sets, models, packages, workflows):
Stars: ✭ 90 (-6.25%)
Mutual labels:  automation
Raspberry Pi Dramble
Raspberry Pi Kubernetes cluster that runs HA/HP Drupal 8
Stars: ✭ 1,317 (+1271.88%)
Mutual labels:  automation
Pyppeteer
Headless chrome/chromium automation library (unofficial port of puppeteer)
Stars: ✭ 1,286 (+1239.58%)
Mutual labels:  automation
Cazador unr
Hacking tools
Stars: ✭ 95 (-1.04%)
Mutual labels:  automation
Docker Amd
AMD is a Lidarr companion script to automatically download music for Lidarr
Stars: ✭ 89 (-7.29%)
Mutual labels:  automation
Netshot
Network Configuration and Compliance Management
Stars: ✭ 91 (-5.21%)
Mutual labels:  automation
Coderr.server
Replace logfiles with Coderr to correct bugs faster and more efficiently.
Stars: ✭ 92 (-4.17%)
Mutual labels:  automation
Spincycle
Automate and expose complex infrastructure tasks to teams and services.
Stars: ✭ 95 (-1.04%)
Mutual labels:  automation

Ki

Build Status codecov

A proof of concept to apply the "Zen" of vi to desktop automation.

What's that?

Ki introduces a novel approach to automating macOS. Inspired by the vi text editor, Ki enables modal hotkeys to execute desktop tasks to determine whether it can be effective in a desktop environment.

The default state of macOS could be considered to be in desktop mode. Ki binds a Command Escape ⌘⎋ hotkey that transitions to normal mode, in which an extensive set of command chains can be initiated.

To view all Ki shortcuts, a cheatsheet modal can be activated with ⌘⎋⌘e?. To see all shortcuts for actions that an entity implements, an entity-specific cheatsheet modal can be activated with ⌘⎋⌘a?(entity hotkey).

Click to view example workflows and their modal keybindings with accompanying descriptions.

We can use entity, action, and select mode to achieve various common tasks from desktop mode:

Intent Keybindings Translation
Launch or focus Safari ⌘⎋⌘es ⌘⎋ enter normal mode
⌘e enter entity mode
s target the Safari application
Toggle media in frontmost Safari window ⌘⎋⌘aSpaces ⌘⎋ enter normal mode
⌘a enter action mode
Space toggle media
s target the Safari application
Focus the third Safari tab ⌘⎋⌘ss⌘3 ⌘⎋ enter normal mode
⌘s enter select mode
s target the Safari application
⌘3 target the third tab

With those semantics in mind, we can intuit other "sentences" if we know other entities g, ⇧s, and m:

Intent Keybindings Translation
Launch or focus Google Chrome ⌘⎋⌘eg ⌘⎋ enter normal mode
⌘e enter entity mode
g target the Google Chrome application
Toggle current song in Spotify ⌘⎋⌘aSpace⇧s ⌘⎋ enter normal mode
⌘a enter action mode
Space toggle current song
⇧s target the Spotify application
Focus the third Messages conversation ⌘⎋⌘sm⌘3 ⌘⎋ enter normal mode
⌘s enter select mode
m target the Messages application
⌘3 target the third conversation from the top

Combinations of the different modes can lead to even more complex workflows!

Intent Keybindings Translation
Toggle media in the fourth Chrome tab ⌘⎋⌘aSpace⌘sg⌘4 ⌘⎋ enter normal mode
⌘a enter action mode
Space toggle media
⌘s enter select mode
g target Google Chrome
⌘4 target the fourth tab
Close the second Safari tab ⌘⎋⌘aw⌘ss⌘2 ⌘⎋ enter normal mode
⌘a enter action mode
w close tab
⌘s enter select mode
s target the Safari application
⌘2 target the second tab

Ki has an ambitious goal of full automative coverage and already comes shipped with default hotkeys and actions for all native macOS applications. A number of other modes (file, url, etc.) are available for automating other aspects of macOS, and can be found in the Ki cheatsheet: ⌘⎋⌘e?.

Installation

Install Hammerspoon and extract Ki.spoon.zip to ~/.hammerspoon/Spoons.

Usage and Configuration

Load, configure, and start the plugin in ~/.hammerspoon/init.lua:

hs.loadSpoon('Ki')                 -- initialize the plugin
spoon.Ki.workflowEvents = {...}    -- configure `spoon.Ki` here
spoon.Ki:start()                   -- enable keyboard shortcuts

Nearly everything in Ki is customizable! API documentation can be found here and usage examples here.

Development

# Setup
# Requires `luarocks` and `pip`
make deps      # install local luarocks dependencies necessary for Ki
make dev-deps  # install global luarocks dev dependencies and pip requirements for the docs generator

# Development
# The target names below can be prefixed with `watch-` to monitor for file changes using `fswatch`
make docs      # generate source documentation
make lint      # run linter on source and spec files
make test      # run busted unit tests and generate coverage files
make dev       # build and symlink the Ki spoon to the system spoons directory for quick development
make           # build and create a spoon zip file in the `dist` folder
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].