{"_id":"karabiner-human-config","_rev":"101-eea6493c8e43cb3bbc2a2cd88e12f6b4","name":"karabiner-human-config","dist-tags":{"latest":"0.15.0"},"versions":{"0.12.2":{"name":"karabiner-human-config","version":"0.12.2","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.12.2","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":"https://rdt.li/khc-issues","bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"48c6541221b1110c94ed8235b0ed8bb1a0218083","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.12.2.tgz","fileCount":4,"integrity":"sha512-nyv4/NmD5dUnpiBgxZXQY9gTBYl0zN1rsBNwLQ+YjtcQDAczC5Hl/ijdvPaG2gPDul/WKHm/QaWQGiQk6TNVCA==","signatures":[{"sig":"MEQCIDesamp0VZ6a/YBGvRAed3AzJF/E9dqNp7p7LC6sYjAqAiBCNfuimdTBwMIwWbKn+hgWa8U6z9N0MWUOyZp/UhaD6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24262},"type":"module","shasum":"48c6541221b1110c94ed8235b0ed8bb1a0218083","funding":"https://github.com/sponsors/nrjdalal","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"_integrity":"sha512-nyv4/NmD5dUnpiBgxZXQY9gTBYl0zN1rsBNwLQ+YjtcQDAczC5Hl/ijdvPaG2gPDul/WKHm/QaWQGiQk6TNVCA==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":"nrjdalal/karabiner-human-config","_npmVersion":"10.8.3","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.6.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.12.2_1739060027780_0.488865835167245","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"karabiner-human-config","version":"0.13.0","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.13.0","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":"https://rdt.li/khc-issues","bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"48cc9c441ef995368c7f7172b0ad3b20fbecc385","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.13.0.tgz","fileCount":4,"integrity":"sha512-znUCYlsSgMwfqynWCtQwt3Up599sereNoZgO0aLGQfRDu+9bgHDIkq0BPb6qezPV25xCtFd6JmsD9azhs70lIw==","signatures":[{"sig":"MEQCIExSdFQc2Ark6AtAqu7Kk1JP/pqvs7K2sYySHTeMIiWKAiAdqxhJnlwm0SP7VXohnitVhGbhiR4V5VyCjyj82A5fOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24555},"type":"module","shasum":"48cc9c441ef995368c7f7172b0ad3b20fbecc385","funding":"https://github.com/sponsors/nrjdalal","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"_integrity":"sha512-znUCYlsSgMwfqynWCtQwt3Up599sereNoZgO0aLGQfRDu+9bgHDIkq0BPb6qezPV25xCtFd6JmsD9azhs70lIw==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":"nrjdalal/karabiner-human-config","_npmVersion":"10.8.3","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.6.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.13.0_1739467249353_0.8085245397750216","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"karabiner-human-config","version":"0.14.0","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.0","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":"https://rdt.li/khc-issues","bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"117428566bae547efa8ceee9c781551c9a83b928","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.0.tgz","fileCount":4,"integrity":"sha512-UCWmXCNvKg054sTbKGp1SAehe/bUWpIhAu7hIv6STp35ZnBPKX9j2LOaeGXoRvAw08018SYlxtyOsYl0twdJwQ==","signatures":[{"sig":"MEQCIGfuS5htb3dGc+4Is+wyRPSGNLZNq64f1LaMqePUWhY6AiANZtdhlbJq52EDD3kCV0745dFQzrLBMLOi0l8Z+h+wbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24569},"type":"module","shasum":"117428566bae547efa8ceee9c781551c9a83b928","funding":"https://github.com/sponsors/nrjdalal","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"_integrity":"sha512-UCWmXCNvKg054sTbKGp1SAehe/bUWpIhAu7hIv6STp35ZnBPKX9j2LOaeGXoRvAw08018SYlxtyOsYl0twdJwQ==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":"nrjdalal/karabiner-human-config","_npmVersion":"10.8.3","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.6.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.0_1739636606998_0.87227782965284","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"karabiner-human-config","version":"0.14.2","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.2","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":"https://rdt.li/khc-issues","bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"e10679052a1ff2a4d552f61549503eae6f9cc503","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.2.tgz","fileCount":4,"integrity":"sha512-nkF+5NAUtwuMti6ANI718XWrkmOWqecbfNsltxykyRNK6UTCxsTqA+xPg/MMqJfQg0GAiTl7Tz4hbJPo89AQSg==","signatures":[{"sig":"MEUCIEmupjzFQxYUmNisbb/nOdDILRqtjjkF9GnKovyLX0NHAiEAtizPf6e0PDdgZQZMB1kURnJSBmRhhYV78UkMoRhPluE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24569},"type":"module","shasum":"e10679052a1ff2a4d552f61549503eae6f9cc503","funding":"https://github.com/sponsors/nrjdalal","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"_integrity":"sha512-nkF+5NAUtwuMti6ANI718XWrkmOWqecbfNsltxykyRNK6UTCxsTqA+xPg/MMqJfQg0GAiTl7Tz4hbJPo89AQSg==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":"nrjdalal/karabiner-human-config","_npmVersion":"10.8.3","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.6.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.2_1742539025656_0.9449240043387557","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"karabiner-human-config","version":"0.14.3","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.3","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"48306513fc730687c0c2ec28f8eeb27e3e07f0b1","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.3.tgz","fileCount":5,"integrity":"sha512-RS7aelE+fW/D/N4D45vfDY7AG8vln6UUJYL5aaSbryO+ldfyyjdLCSj24+rtOVl6LJkMQbe3sZjaKM73W5cFjw==","signatures":[{"sig":"MEQCIFyqTJG9Fj2jrxr9Rxv4ImQDdWnEpVhzyhEGWqzMDyugAiAxnGo+UqNe9r9qK50kdMsssJFHABmXMTCNDE2QQIcHBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44061},"type":"module","_from":".","_shasum":"48306513fc730687c0c2ec28f8eeb27e3e07f0b1","funding":"https://github.com/sponsors/nrjdalal","gitHead":"d06f6b2ee3b9e2bd1d9248e4547753d3cbc276f6","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/nrjdalal/karabiner-human-config.git","type":"git"},"_npmVersion":"2.15.12","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.14.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.3_1742541487908_0.8553771836822393","host":"s3://npm-registry-packages-npm-production"}},"0.14.4":{"name":"karabiner-human-config","version":"0.14.4","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.4","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"483d3716c59de8fe863e2ece5703f33ab12900ad","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.4.tgz","fileCount":5,"integrity":"sha512-QputIhbnm4Mpxaw9DCKDLbS0zk9mot1lo47xeQG1/5k4o2fbL6ZCEz8XJ4R/AJH+N/XXYZAbY/mMD3JpuGLmyw==","signatures":[{"sig":"MEUCIGvFNT3b/HUUn/J4w5FtU/HAv1k6tiFW/K5NrLlbkzrYAiEAvuDFTLTiXOGc3D1HjiPYvtZEMPC1CqGR5I1+CqJtsxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39285},"type":"module","_from":".","_shasum":"483d3716c59de8fe863e2ece5703f33ab12900ad","funding":"https://github.com/sponsors/nrjdalal","gitHead":"0381d85bc2563019a1b2ea3fa097ac305b45c53c","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/nrjdalal/karabiner-human-config.git","type":"git"},"_npmVersion":"2.15.12","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.14.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.4_1742541570203_0.9308314193185585","host":"s3://npm-registry-packages-npm-production"}},"0.14.5":{"name":"karabiner-human-config","version":"0.14.5","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.5","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"adad132cec75ad14d202ec03599c2bb70596364d","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.5.tgz","fileCount":5,"integrity":"sha512-99VN69ZxGe2BMdfGQxWT+87WoHIJy6Cq3Rp9ZkdpndOzV3uHROUYMyif2gG0a0VAsjEiSt6fZHTWszPVzt2Fow==","signatures":[{"sig":"MEUCIC+60sOxM3zvkOrKKSZmwz7neGyIg0yxXYe1rNHHXXqpAiEA6cWuq6uRwgSSljTky/0HbSCwpM1RqE5yWoudgKLbewI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39513},"type":"module","_from":".","_shasum":"adad132cec75ad14d202ec03599c2bb70596364d","funding":"https://github.com/sponsors/nrjdalal","gitHead":"d608b17b739d5c3bb9894c33bac4791f0dfeb0d6","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/nrjdalal/karabiner-human-config.git","type":"git"},"_npmVersion":"2.15.12","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.14.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.5_1742541608649_0.3745362022063161","host":"s3://npm-registry-packages-npm-production"}},"0.14.6":{"name":"karabiner-human-config","version":"0.14.6","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.6","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"25d25db40e8887ea72977763bab4168e95bf742f","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.6.tgz","fileCount":5,"integrity":"sha512-JTV178GJiOlIT1mZzV+8eWFcdiMdJW8vtd3zjloST/LyjsGvvcvmnwBMg+9PxDXlaE+gaBnYlVism618r4yobg==","signatures":[{"sig":"MEUCIFgSTp2IGC8zDDmyTTb8vkuoTwYfIxmHU9rn0OvQMLdyAiEAqGGg03+g1EeNwK0KPvA94EemBFGlvrpVFUFXuUZtcHU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40193},"type":"module","_from":".","_shasum":"25d25db40e8887ea72977763bab4168e95bf742f","funding":"https://github.com/sponsors/nrjdalal","gitHead":"f2a0e2f454893f98ef71a2964a0ad12d01d7ed68","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/nrjdalal/karabiner-human-config.git","type":"git"},"_npmVersion":"2.15.12","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"22.14.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.6_1742541746350_0.4823268640278964","host":"s3://npm-registry-packages-npm-production"}},"0.14.7":{"name":"karabiner-human-config","version":"0.14.7","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.7","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"0c08c7bb1c93f837bc294acb823943fc7d556c21","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.7.tgz","fileCount":4,"integrity":"sha512-fCSRnKajNDieHFvI1yNsLXl8DGiTlhPA2aOTvT0aD9PMqTwpjWhRE0GEvrFu92j+xq370g0WGTjxW8PECrVGZg==","signatures":[{"sig":"MEUCIQCPBbZuQgA6bfGHFSylQ3nKJnwjRIx9CxyT22juT/Z1UwIgdR2jRstuecmCZCmGeZRBdFoHpJaF3tVtCw8e/9knbI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24601},"type":"module","funding":"https://github.com/sponsors/nrjdalal","gitHead":"bed77f1f24f777a255f97d52d296f833dbb5c01d","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/nrjdalal/karabiner-human-config.git","type":"git"},"_npmVersion":"11.6.1","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"24.11.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.7_1762597553032_0.09388575491302609","host":"s3://npm-registry-packages-npm-production"}},"0.14.8":{"name":"karabiner-human-config","version":"0.14.8","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"author":{"url":"https://nrjdalal.com","name":"Neeraj Dalal","email":"admin@nrjdalal.com"},"license":"MIT","_id":"karabiner-human-config@0.14.8","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"bin":{"khc":"dist/index.js","karabiner-human-config":"dist/index.js"},"dist":{"shasum":"1ba9ac9f893f8aeeac1061153b914db0c2522c3f","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.14.8.tgz","fileCount":4,"integrity":"sha512-EJRVrhjl8BpUS7iwU0v5AKHCaUDoDLUzXpQgxk54PxuWBzm6xTFgmC6FS1C6jB9BHyCF7O1hMOIML9SN3dphAA==","signatures":[{"sig":"MEUCIQCQ4eqmjQWgCd9IT7Y0MU7tPIVhVIPrp3PtoUZXYUFCUwIgWX1KBVYtLMjHvodzTjfp6loTp4lBmyAthYn4kzEemrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24601},"type":"module","funding":"https://github.com/sponsors/nrjdalal","gitHead":"bed77f1f24f777a255f97d52d296f833dbb5c01d","scripts":{"cli":"bun run build && node dist/index.js","dev":"tsup --watch","build":"tsup","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/nrjdalal/karabiner-human-config.git","type":"git"},"_npmVersion":"11.6.1","description":"The easiest way to write Karabiner-Elements configuration files, ever!","directories":{},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"_nodeVersion":"24.11.0","dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.13.1","lint-staged":"^15.4.3","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@types/bundle-id":"^3.0.0","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","@changesets/changelog-github":"^0.5.0","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1"},"simple-git-hooks":{"commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/karabiner-human-config_0.14.8_1762597598149_0.36281103274544324","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"karabiner-human-config","version":"0.15.0","description":"The easiest way to write Karabiner-Elements configuration files, ever!","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"homepage":"https://rdt.li/github-khc","bugs":{"url":"https://rdt.li/khc-issues"},"repository":{"type":"git","url":"git+https://github.com/nrjdalal/karabiner-human-config.git"},"funding":"https://github.com/sponsors/nrjdalal","license":"MIT","author":{"name":"Neeraj Dalal","email":"admin@nrjdalal.com","url":"https://nrjdalal.com"},"type":"module","bin":{"karabiner-human-config":"dist/index.js","khc":"dist/index.js"},"scripts":{"build":"tsup","cli":"bun run build && node dist/index.js","dev":"tsup --watch","prepare":"if [ \"$NODE_ENV\" != \"production\" ]; then npx simple-git-hooks; fi","publish:latest":"NODE_ENV=production changeset publish"},"simple-git-hooks":{"pre-commit":"npx lint-staged","commit-msg":"npx commitlint --edit $1"},"commitlint":{"extends":["@commitlint/config-conventional"]},"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"sort-package-json"},"dependencies":{"bundle-id":"^3.0.0","strip-json-comments":"^5.0.1"},"devDependencies":{"@changesets/changelog-github":"^0.5.0","@changesets/cli":"^2.27.12","@commitlint/cli":"^19.7.1","@commitlint/config-conventional":"^19.7.1","@ianvs/prettier-plugin-sort-imports":"^4.4.1","@types/bundle-id":"^3.0.0","@types/node":"^22.13.1","lint-staged":"^15.4.3","prettier":"^3.4.2","simple-git-hooks":"^2.11.1","sort-package-json":"^2.14.0","tsup":"^8.3.6","typescript":"^5.7.3"},"gitHead":"162e0b2c6f8c23150bf6614233bda4f932d5c994","_id":"karabiner-human-config@0.15.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-7UeQRSui9qnZjeGTjhB7uyqg0ldTs0jySmskN/cagyGNNd/F0mX6zfXyyrJKJmUrB3vPVwDskPnfg4EQDPrHww==","shasum":"abffd967a933cc52eb5e60174696b1c8b957af24","tarball":"https://registry.npmjs.org/karabiner-human-config/-/karabiner-human-config-0.15.0.tgz","fileCount":4,"unpackedSize":27069,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBB9rWVTaSooudAqGUq6Y6p+X6mCGrSqj1DH63LfMR7IAiEAqUGvi2S1JwzxkFIPSmhxvypUwSl36fc0CLkuGGyTMzQ="}]},"_npmUser":{"name":"nrjdalal","email":"admin@nrjdalal.com"},"directories":{},"maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/karabiner-human-config_0.15.0_1773438110833_0.1784986589976425"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-07T13:43:24.110Z","modified":"2026-03-13T21:41:51.126Z","0.0.2":"2025-02-07T13:43:24.305Z","0.0.3":"2025-02-07T13:43:57.283Z","0.0.8":"2025-02-07T14:08:19.964Z","0.0.14":"2025-02-07T14:33:35.325Z","0.0.15":"2025-02-07T14:40:01.478Z","0.0.16":"2025-02-07T14:54:12.988Z","0.0.17":"2025-02-07T15:01:04.455Z","0.0.19":"2025-02-07T15:14:45.034Z","0.0.20":"2025-02-07T15:16:04.774Z","0.0.21":"2025-02-07T15:32:19.900Z","0.1.0":"2025-02-07T15:41:20.140Z","0.1.1":"2025-02-07T15:50:19.675Z","0.1.2":"2025-02-07T15:57:10.799Z","0.2.0":"2025-02-07T16:05:19.469Z","0.2.2":"2025-02-07T16:52:20.816Z","0.3.0":"2025-02-08T02:14:09.753Z","0.4.0":"2025-02-08T03:12:36.809Z","0.4.1":"2025-02-08T03:17:20.673Z","0.4.2":"2025-02-08T03:23:44.011Z","0.4.3":"2025-02-08T03:34:57.764Z","0.5.0":"2025-02-08T03:56:06.824Z","0.5.1":"2025-02-08T04:02:22.704Z","0.5.2":"2025-02-08T04:14:55.734Z","0.5.3":"2025-02-08T04:16:46.571Z","0.6.0":"2025-02-08T07:43:20.079Z","0.6.1":"2025-02-08T13:18:44.246Z","0.7.0":"2025-02-08T14:13:58.891Z","0.7.1":"2025-02-08T14:22:42.034Z","0.8.0":"2025-02-08T14:36:29.783Z","0.8.1":"2025-02-08T14:37:59.867Z","0.8.2":"2025-02-08T14:46:31.928Z","0.8.3":"2025-02-08T15:05:21.318Z","0.8.4":"2025-02-08T15:07:37.465Z","0.9.0":"2025-02-08T15:44:09.611Z","0.9.1":"2025-02-08T15:45:49.839Z","0.10.0":"2025-02-08T17:04:47.604Z","0.10.1":"2025-02-08T17:07:33.782Z","0.10.2":"2025-02-08T17:10:12.031Z","0.10.3":"2025-02-08T17:18:17.728Z","0.11.0":"2025-02-08T17:25:28.005Z","0.11.1":"2025-02-08T17:27:01.486Z","0.11.2":"2025-02-08T17:30:12.980Z","0.12.0":"2025-02-09T00:02:59.708Z","0.12.1":"2025-02-09T00:12:50.320Z","0.12.2":"2025-02-09T00:13:47.963Z","0.13.0":"2025-02-13T17:20:49.509Z","0.14.0":"2025-02-15T16:23:27.199Z","0.14.1":"2025-03-21T06:35:36.668Z","0.14.2":"2025-03-21T06:37:05.839Z","0.14.3":"2025-03-21T07:18:08.092Z","0.14.4":"2025-03-21T07:19:30.449Z","0.14.5":"2025-03-21T07:20:08.970Z","0.14.6":"2025-03-21T07:22:26.602Z","0.14.7":"2025-11-08T10:25:53.219Z","0.14.8":"2025-11-08T10:26:38.344Z","0.15.0":"2026-03-13T21:41:51.004Z"},"bugs":{"url":"https://rdt.li/khc-issues"},"author":{"name":"Neeraj Dalal","email":"admin@nrjdalal.com","url":"https://nrjdalal.com"},"license":"MIT","homepage":"https://rdt.li/github-khc","keywords":["elements","karabiner-elements","karabiner","keyboard-mapping","keyboard-remapping","keyboard-shortcuts","keyboard","mac","macos","mapping","remapping","shortcuts"],"repository":{"type":"git","url":"git+https://github.com/nrjdalal/karabiner-human-config.git"},"description":"The easiest way to write Karabiner-Elements configuration files, ever!","maintainers":[{"name":"nrjdalal","email":"admin@nrjdalal.com"}],"readme":"# Karabiner-Human-Config\n\n## The easiest way to write Karabiner-Elements configuration files, ever!\n\n[![npm](https://img.shields.io/npm/v/karabiner-human-config?color=red&logo=npm)](https://www.npmjs.com/package/karabiner-human-config)\n[![npm](https://img.shields.io/npm/dt/karabiner-human-config?color=red&logo=npm)](https://www.npmjs.com/package/karabiner-human-config)\n[![GitHub](https://img.shields.io/github/stars/nrjdalal/karabiner-human-config?color=blue)](https://github.com/nrjdalal/karabiner-human-config)\n\nFind it on the official website of Karabiner-Elements at [external JSON generators](https://karabiner-elements.pqrs.org/docs/json/external-json-generators).\n\nCreating configuration files for [Karabiner-Elements](https://github.com/pqrs-org/Karabiner-Elements) can be challenging. With Karabiner-Human-Config (KHC), you can effortlessly generate your own configuration files using human-readable/understandable syntax.\n\n## Usage\n\nJust create a new `konfig.json` file:\n\n- Don't hold back on the [comments](#comments).\n- Can use [custom aliases](#custom-aliases) like `caps` `hyper` `cmd` `ctrl` etc.\n- Can specify `t` `a` etc as [manipulator key's aliases](#manipulator-keys-aliases).\n- Easily prefix [flags and delays](#prefix-delay-and-flags) like `100` easily, if needed.\n- Use `$` for [shell command](#shell-command).\n- Just use the [app's name](#application-group-keys) like `Visual Studio Code`.\n\n```json\n{\n  // direct\n  \"caps\": { \"t\": \"hyper\", \"a\": \"100 caps\" },\n  \"hyper spacebar\": \"cmd spacebar\",\n  // group\n  \"fn\": {\n    \"_self\": { \"t\": \"fn\", \"a\": \"cmd tab\" },\n    \"spacebar\": \"cmd spacebar\",\n    \"v\": \"$ open -a 'Visual Studio Code'\"\n  },\n  // application group\n  \"Visual Studio Code\": {\n    \"fn tilde\": \"ctrl tilde\"\n  }\n}\n```\n\nAnd run the following command:\n\n```bash\nnpx karabiner-human-config\n```\n\nAnd voila! From 10-15 lines to 170+ lines of configuration in just a few seconds.\n\n<details><summary>Generated: karabiner.json</summary><br/><pre>\n{\n  \"global\": {\n    \"show_in_menu_bar\": false\n  },\n  \"profiles\": [\n    {\n      \"complex_modifications\": {\n        \"rules\": [\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"caps\",\n                \"from\": {\n                  \"key_code\": \"caps_lock\"\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"left_shift\",\n                    \"modifiers\": [\n                      \"left_command\",\n                      \"left_control\",\n                      \"left_option\"\n                    ]\n                  }\n                ],\n                \"to_if_alone\": [\n                  {\n                    \"key_code\": \"caps_lock\",\n                    \"hold_down_milliseconds\": 100\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"hyper spacebar\",\n                \"from\": {\n                  \"key_code\": \"spacebar\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"left_command\",\n                      \"left_control\",\n                      \"left_option\",\n                      \"left_shift\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"spacebar\",\n                    \"modifiers\": [\n                      \"left_command\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn\",\n                \"from\": {\n                  \"key_code\": \"fn\"\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"fn\"\n                  }\n                ],\n                \"to_if_alone\": [\n                  {\n                    \"key_code\": \"tab\",\n                    \"modifiers\": [\n                      \"left_command\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn spacebar\",\n                \"from\": {\n                  \"key_code\": \"spacebar\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"fn\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"spacebar\",\n                    \"modifiers\": [\n                      \"left_command\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn v\",\n                \"from\": {\n                  \"key_code\": \"v\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"fn\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"shell_command\": \"open -a 'Visual Studio Code'\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"visual studio code fn tilde\",\n                \"from\": {\n                  \"key_code\": \"grave_accent_and_tilde\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"fn\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"grave_accent_and_tilde\",\n                    \"modifiers\": [\n                      \"left_control\"\n                    ]\n                  }\n                ],\n                \"conditions\": [\n                  {\n                    \"type\": \"frontmost_application_if\",\n                    \"bundle_identifiers\": [\n                      \"^com\\\\.microsoft\\\\.VSCode$\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      \"name\": \"nrjdalal\",\n      \"selected\": true,\n      \"virtual_hid_keyboard\": {\n        \"keyboard_type_v2\": \"ansi\"\n      }\n    }\n  ]\n}\n</pre></details>\n\n<br/>\n\nThe generated configuration will be saved in `karabiner.json` in the same directory.\n\n<em>**Bonus: If you wish to checkout my personal configuration, you can find it [here](konfig.json).\nAnd what it generates [here](karabiner.json).**</em>\n\n<br/>\n\n## Table of Contents\n\n- [CLI Usage](#cli-usage)\n  - [With Default Options](#with-default-options)\n  - [With Custom Input and Output](#with-custom-input-and-output)\n- [Types of Addressing](#types-of-addressing)\n  - [Comments](#comments)\n  - [Direct Keys](#direct-keys)\n  - [Group Keys](#group-keys)\n  - [Application Group Keys](#application-group-keys)\n- [Advanced Usage for From Events](#advanced-usage-for-from-events)\n  - [Optional Modifiers](#optional-modifiers)\n- [Advanced Usage for To Events](#advanced-usage-for-to-events)\n  - [Shell Command](#shell-command)\n  - [Prefix Delay and Flags](#prefix-delay-and-flags)\n  - [Specify Multiple Events](#specify-multiple-events)\n- [Conditions](#conditions)\n  - [Per-Manipulator Conditions](#per-manipulator-conditions)\n  - [Group-Level Conditions](#group-level-conditions)\n  - [Conditions-Only Groups](#conditions-only-groups)\n- [Alias](#alias)\n  - [Custom Aliases](#custom-aliases)\n  - [Manipulator Key's Aliases](#manipulator-keys-aliases)\n- [Future Considerations](#future-considerations)\n\n<br/>\n\n## CLI Usage\n\n```\nVersion:\n  karabiner-human-config@x.x.x\n\nUsage:\n  $ karabiner-human-config [options]\n\nOptions:\n  -i, --input    Input file path (default: konfig.json)\n  -o, --output   Output file path (default: karabiner.json)\n  -v, --version  Display version number\n  -h, --help     Display help message\n\nAuthor:\n  Neeraj Dalal <admin@nrjdalal.com> (https://nrjdalal.com)\n```\n\n### With Default Options\n\n```bash\nnpx karabiner-human-config\n```\n\n### With Custom Input and Output\n\nYou can use either/both of the options.\n\n```bash\nnpx karabiner-human-config -i konfig.json -o karabiner.json\n```\n\n<br/>\n\n## Types of Addressing\n\n### Comments\n\nDon't hold back on the comments. They are your best friend. KHC will strip them out before generating the configuration.\n\n### Direct Keys\n\nUse `string` values if there's only `to` event. In case of multiple events, use `object` values. Read more at [specifying multiple events](#specify-multiple-events).\n\n```json\n{\n  \"hyper spacebar\": \"cmd spacebar\",\n  \"caps\": { \"t\": \"hyper\", \"a\": \"100 caps\" }\n}\n```\n\n### Group Keys\n\nInstead of repeating the same key beginning, use group keys.\n\n```diff\n{\n-  \"fn\": { \"t\": \"fn\", \"a\": \"cmd tab\" },\n-  \"fn spacebar\": \"cmd spacebar\",\n-  \"fn v\": \"$ open -a 'Visual Studio Code'\",\n+  \"fn\": {\n+    \"_self\": { \"t\": \"fn\", \"a\": \"cmd tab\" },\n+    \"spacebar\": \"cmd spacebar\",\n+    \"v\": \"$ open -a 'Visual Studio Code'\"\n+  }\n}\n```\n\nNote: Currently, `_self` is required to create a group key.\n\n### Application Group Keys\n\nUse application names if you want to specify key mappings for a specific application. Don't worry about finding bundle identifiers, just use the app name.\n\n```json\n{\n  \"Visual Studio Code\": {\n    \"fn tilde\": \"ctrl tilde\"\n  }\n}\n```\n\n<br/>\n\n## Advanced Usage for From Events\n\n### Optional Modifiers\n\nUse `|` to specify optional modifiers.\n\n```diff\n{\n-  \"fn spacebar: \"cmd spacebar\"\n+  \"fn spacebar | any\": \"cmd spacebar\"\n}\n```\n\n<details><summary>Generated: karabiner.json</summary><br/><pre>\n{\n  \"global\": {\n    \"show_in_menu_bar\": false\n  },\n  \"profiles\": [\n    {\n      \"complex_modifications\": {\n        \"rules\": [\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn spacebar | any\",\n                \"from\": {\n                  \"key_code\": \"spacebar\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"fn\"\n                    ],\n                    \"optional\": [\n                      \"any\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"spacebar\",\n                    \"modifiers\": [\n                      \"left_command\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      \"name\": \"nrjdalal\",\n      \"selected\": true,\n      \"virtual_hid_keyboard\": {\n        \"keyboard_type_v2\": \"ansi\"\n      }\n    }\n  ]\n}\n</pre></details>\n\n<br/>\n\n## Advanced Usage for To Events\n\n### Shell Command\n\nUse `$` to specify a shell command.\n\n```diff\n{\n-  \"fn spacebar\": \"cmd spacebar\"\n+  \"fn spacebar\": \"$ open -a 'Google Chrome'\"\n}\n```\n\n<details><summary>Generated: karabiner.json</summary><br/><pre>\n{\n  \"global\": {\n    \"show_in_menu_bar\": false\n  },\n  \"profiles\": [\n    {\n      \"complex_modifications\": {\n        \"rules\": [\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn spacebar\",\n                \"from\": {\n                  \"key_code\": \"spacebar\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"fn\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"shell_command\": \"open -a 'Google Chrome'\"\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      \"name\": \"nrjdalal\",\n      \"selected\": true,\n      \"virtual_hid_keyboard\": {\n        \"keyboard_type_v2\": \"ansi\"\n      }\n    }\n  ]\n}\n</pre></details>\n\n### Prefix Delay and Flags\n\nPrefix with `lazy`, `repeat`, `halt` to set flags. Or `number` to specify a delay.\n\n```diff\n{\n-  \"fn spacebar\": \"cmd spacebar\"\n+  \"fn spacebar\": \"100 lazy repeat halt cmd spacebar\"\n}\n```\n\n<details><summary>Generated: karabiner.json</summary><br/><pre>\n{\n  \"global\": {\n    \"show_in_menu_bar\": false\n  },\n  \"profiles\": [\n    {\n      \"complex_modifications\": {\n        \"rules\": [\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn spacebar\",\n                \"from\": {\n                  \"key_code\": \"spacebar\",\n                  \"modifiers\": {\n                    \"mandatory\": [\n                      \"fn\"\n                    ]\n                  }\n                },\n                \"to\": [\n                  {\n                    \"lazy\": true,\n                    \"repeat\": true,\n                    \"halt\": true,\n                    \"hold_down_milliseconds\": 100,\n                    \"key_code\": \"spacebar\",\n                    \"modifiers\": [\n                      \"left_command\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      \"name\": \"nrjdalal\",\n      \"selected\": true,\n      \"virtual_hid_keyboard\": {\n        \"keyboard_type_v2\": \"ansi\"\n      }\n    }\n  ]\n}\n</pre></details>\n\n### Specify Multiple Events\n\nInstead of strings, use objects like `{ to: ..., to_if_alone: ... }` to specify multiple to events.\n\n```diff\n{\n-  \"fn spacebar\": \"cmd spacebar\"\n+  \"fn\": { \"to\": \"fn\", \"to_if_alone\": \"cmd tab\" }\n}\n```\n\n<details><summary>Generated: karabiner.json</summary><br/><pre>\n{\n  \"global\": {\n    \"show_in_menu_bar\": false\n  },\n  \"profiles\": [\n    {\n      \"complex_modifications\": {\n        \"rules\": [\n          {\n            \"manipulators\": [\n              {\n                \"type\": \"basic\",\n                \"description\": \"fn\",\n                \"from\": {\n                  \"key_code\": \"fn\"\n                },\n                \"to\": [\n                  {\n                    \"key_code\": \"fn\"\n                  }\n                ],\n                \"to_if_alone\": [\n                  {\n                    \"key_code\": \"tab\",\n                    \"modifiers\": [\n                      \"left_command\"\n                    ]\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      \"name\": \"nrjdalal\",\n      \"selected\": true,\n      \"virtual_hid_keyboard\": {\n        \"keyboard_type_v2\": \"ansi\"\n      }\n    }\n  ]\n}\n</pre></details>\n\n<br/>\n\n## Conditions\n\nAdd [Karabiner conditions](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/conditions/) like `device_if`, `device_unless`, `input_source_if`, `variable_if`, `keyboard_type_if`, and more.\n\n### Per-Manipulator Conditions\n\nUse `c` (or `conditions`) to add conditions to a single manipulator.\n\n```json\n{\n  \"caps\": {\n    \"t\": \"escape\",\n    \"c\": [{ \"type\": \"device_if\", \"identifiers\": [{ \"vendor_id\": 1452 }] }]\n  }\n}\n```\n\n### Group-Level Conditions\n\nUse `_conditions` inside a group with `_self` to apply conditions to all manipulators in the group.\n\n```json\n{\n  \"rcmd\": {\n    \"_self\": \"rcmd\",\n    \"_conditions\": [\n      {\n        \"type\": \"device_unless\",\n        \"identifiers\": [{ \"is_built_in_keyboard\": true }]\n      }\n    ],\n    \"d\": \"$ open \\\"https://discord.com\\\"\"\n  }\n}\n```\n\nBoth `rcmd` (self) and `rcmd d` will have the `device_unless` condition applied.\n\n### Conditions-Only Groups\n\nUse `_conditions` without `_self` to scope conditions to a group of keys without a shared modifier.\n\n```json\n{\n  \"external_keyboard\": {\n    \"_conditions\": [\n      {\n        \"type\": \"device_if\",\n        \"identifiers\": [{ \"vendor_id\": 1234, \"product_id\": 5678 }]\n      }\n    ],\n    \"a\": { \"t\": \"b\" },\n    \"caps\": { \"t\": \"escape\" }\n  }\n}\n```\n\nThe group key (`external_keyboard`) is just a label — child keys are processed as-is with the conditions inherited.\n\nNote: `_conditions` also works inside [application group keys](#application-group-keys) to combine device conditions with app-specific conditions.\n\n<br/>\n\n## Alias\n\n- [key_codes by Karabiner-Elements](https://github.com/pqrs-org/Karabiner-Elements/blob/main/src/apps/SettingsWindow/Resources/simple_modifications.json)\n\n### Custom Aliases\n\n- `hyper` for `left_command left_control left_option left_shift`\n- `left_command` as `cmd` `lcmd` `l_cmd` `left_cmd` `lcommand` `l_command`\n\nCheck and add [custom-aliases.ts](constants/custom-aliases.ts) for more.\n\n### Manipulator Key's Aliases\n\n- `t` for `to`\n- `a` for `to_if_alone`\n- `h` for `to_if_held_down`\n- `c` for `conditions`\n\nCheck and add [manipulator-keys.ts](constants/manipulator-keys.ts) for more.\n\n<br/>\n\n## Future Considerations\n\n- You tell me, I just got to know about Karabiner-Elements two days before publishing this on Feb 07, 2025.\n","readmeFilename":"README.md"}