WOWEE v0.3.0

I have been continuing to tinker with this project over the last week…

https://github.com/captainflasmr/wowee

Overview

WOWEE is a set of AutoHotKey scripts designed to bring Emacs-like commands and keybindings to the Windows operating system. Based on the concept of EWOW (Emacs Way of Operating Windows), WOWEE allows you to use Emacs-style navigation and commands throughout your Windows environment.

Whats New

Version 0.3.0 [2024-06-28 Fri]

This commit has split out ahk files into apps, core and init:

Version 0.2.0 [2024-06-26 Wed]

This commit introduces several new functions to enhance the usability and functionality of the `commands.ahk` script. Notable additions include:

Version 0.1.0 [2024-06-19 Wed]

Initial version

Features

My current thoughts

Bindings bespoke to individual applications

kanban

This kanban board is keeping track of those original EWOW functions.

The IGNORE column includes functions that I am definitely not going to implement.

The EXTRA section are additional commands that I am adding.

TODO DOING DONE IGNORE
CORE REGION COMMANDS —- VISUAL STUDIO —- CORE MOTION COMMANDS - scroll_left
- mark_word - recenter_line - forward_char - scroll_right
- kill_region - indent_line - backward_char - open_line
- yank_pop —- VSCODE —- - forward_word - transpose_chars
- delete_backward_char - isearch_backwards - backward_word - transpose_words
- kill_word - isearch_forwards - next_line - transpose_lines
- kill_whole_line ADD PROGRAM SPECIFIC PRESETS - previous_line CORE CASE CONVERSION COMMANDS
CORE NEWLINE AND INDENT COMMANDS CORE JUMPING AROUND COMMANDS - upcase_region
- newline - scroll_down - downcase_region
- delete_indentation - scroll_up - upcase_word
CORE EDIT COMMANDS - move_beginning_of_line - downcase_word
- redo - move_end_of_line - capitalize_word
- query_replace - beginning_of_buffer CORE MACRO RECORDING COMMANDS
- overwrite_mode - end_of_buffer CORE ADD IGNORE FRAMES
CORE INSERT PAIRS COMMANDS - goto_line CORE ADD MOUSE EVENTS
- insert_parentheses - mark_whole_line
- insert_comment - mark_whole_buffer
- indent_new_comment_line - kill_ring_save
CORE OTHER COMMANDS - yank
- shell - delete_char
- shell_command - backward_kill_word
- facemenu - kill_line
- help - indent_for_tab_command
CORE SYSTEM COMMANDS - undo_only
- ignore - search_forward
- repeat - search_backward
CORE DIGIT ARGUMENT COMMANDS - set_mark_command
CORE FILES COMMANDS - set_cx_command
- write_file - keyboard_quit
- find_file - save_buffer
- dired CORE ADD C-X
CORE WINDOWS FRAMES COMMANDS - isearch_backwards
- kill_frame - isearch_forwards
- delete_window - comment_line
- split_window - comment_line
- next_window
- previous_window
- suspend_frame
CORE ADD HOOKS
ADD GENERIC GOTO LINE
CORE ADD KILL RING
- recenter_line
- indent_line
EXTRA ERGO PRESET SELECTION
EXTRA
- ctrl_mapping

Usage

  1. Install AutoHotKey: Download and install AutoHotKey from AutoHotKey’s official website.
  2. Run WOWEE: Double-click on the `wowee.ahk` script to start WOWEE. Once running, Emacs commands will be available in your Windows environment.
  3. Quit WOWEE: To quit WOWEE, right-click the AutoHotKey icon in the task tray and select “Exit.”

Configuration

WOWEE is composed of several AutoHotKey scripts, each serving a specific purpose to replicate Emacs functionalities:

wowee.ahk

The top level script to be run, contains the following scripts along with some potential ergonomic key-mappings which if not desired can be commented out:

RAlt::Control
CapsLock::Control
#Include fundamental.ahk
#Include commands.ahk
#Include keybinds-apps.ahk
#HotIf !WinActive("ahk_class Emacs")
#Include keybinds-core.ahk
#Include keybinds-init.ahk
#HotIf

fundamental.ahk

This script provides a set of fundamental functions and variables that are used to implement Emacs-like commands and keybindings.

commands.ahk

This script includes the basic implementation of Emacs commands.

commands_util.ahk

This script contains simple utility functions used by the command scripts.

keybinds-core.ahk

This script defines the default core keybindings for Emacs-like commands, which will be a fallback for any windows application.

keybinds-apps.ahk

This script defines the application specific commands, typically commands that have been remapped to accommodate the chosen commands.

Comments within the ahk file indicate the potential re-mappings.

keybinds-init.ahk

Analogous to the init.el file or Emacs init file in which all the users bespoke keybindings will exist. An example of my preferred keybindings has been supplied.

Comments

comments powered by Disqus