Skip to content
This repository was archived by the owner on Jul 3, 2025. It is now read-only.

Conversation

@mquinnv
Copy link

@mquinnv mquinnv commented Jul 3, 2025

Summary

  • Replace Python build script with TypeScript version using tsx and js-yaml
  • Add pnpm package manager with modern tooling dependencies
  • Implement TypeScript script to extract macOS app bundle identifiers
  • Add comprehensive deployment automation with backup and cleanup features

Test plan

  • Test TypeScript build script: pnpm run build
  • Test watch mode: pnpm run dev
  • Verify bundle ID extraction: pnpm run bundle-id <app-name>
  • Test deployment script: pnpm run deploy
  • Confirm JSON validation: pnpm run test
  • Verify all scripts work correctly across different environments

🤖 Generated with Claude Code

mquinnv and others added 6 commits July 3, 2025 12:01
…oling

- Remove yml-to-json.py Python script
- Add package.json with pnpm, TypeScript, and tsx dependencies
- Create build.ts TypeScript build script with watch mode support
- Add .gitignore for node_modules and generated files
- Build script supports both single build and watch mode
- Regenerate vim_mode_plus.json with all new Vim features

Features added in this release:
- 'w' motion command (move to start of next word)
- 'dw', 'cw', 'yw' operations for word manipulation
- 'w' selection in visual mode
- 'C' shortcut for 'c$' (change to end of line)
- 'D' shortcut for 'd$' (delete to end of line)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Create get-bundle-id.ts to read CFBundleIdentifier from .app bundles
- Parse Info.plist files to extract bundle IDs for Karabiner exclusions
- Add plist package dependency for parsing plist files
- Add convenient npm script: pnpm run bundle-id "/path/to/App.app"
- Includes help and error handling for ease of use

Usage examples:
  pnpm run bundle-id /Applications/Safari.app
  pnpm run bundle-id "/Applications/Visual Studio Code.app"

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Create install.sh script that handles building and copying JSON to Karabiner
- Includes error checking, colored output, and backup of existing config
- Add 'pnpm run install' script to package.json
- Update README.md with easy installation instructions
- Automatically builds latest configuration before installing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Add detection and removal of existing Vim Mode Plus files by checking JSON title
- Back up old files before removal with timestamped names
- Ensure new configuration file is always installed
- Fix issue where old imported files (like 1751554947.json) weren't being replaced

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Rename install.sh -> deploy.sh to prevent interference with pnpm install
- Update package.json script from "install" to "deploy"
- Update README.md to use "pnpm run deploy" instead of "pnpm run install"
- Now pnpm install works normally without triggering our deployment script

Usage: pnpm run deploy (instead of pnpm run install)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Remove complex jq-based rule removal from karabiner.json
- Remove asset file cleanup and backup logic
- Keep simple file copy deployment only
- Update warning message to suggest manual cleanup if needed
- Much simpler and more reliable deployment process

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@mquinnv
Copy link
Author

mquinnv commented Jul 3, 2025

the reason i didn't just use the python version of the build script is that it was using a deprecated library that isn't easily installed anymore

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant