diff --git a/data/others/karabiner-elements.json b/data/others/karabiner-elements.json
new file mode 100644
index 00000000..15615323
--- /dev/null
+++ b/data/others/karabiner-elements.json
@@ -0,0 +1,245 @@
+{
+ "title": "AquaSKK for Jetbrain",
+ "rules": [
+ {
+ "description": "Change input source to full width ascii mode by L (QWERTY)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "l",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ]
+ }
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.FullWidthRoman$"
+ },
+ "modifiers": [
+ "shift"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to ascii mode by l (QWERTY)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "l"
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.Ascii$"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to half width katakana mode by Q (QWERTY)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "q",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ]
+ }
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.HalfWidthKana$"
+ },
+ "modifiers": [
+ "shift"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to katakana mode by q (QWERTY)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "q"
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.Katakana$"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to full width ascii mode by L (Dvorak)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "p",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ]
+ }
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.FullWidthRoman$"
+ },
+ "modifiers": [
+ "shift"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to ascii mode by l (Dvorak)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "p"
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.Ascii$"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to half width katakana mode by Q (Dvorak)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "x",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ]
+ }
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.HalfWidthKana$"
+ },
+ "modifiers": [
+ "shift"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Change input source to katakana mode by q (Dvorak)",
+ "manipulators": [
+ {
+ "type": "basic",
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.jetbrains\\..*"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "x"
+ },
+ "to": [
+ {
+ "select_input_source": {
+ "input_source_id": "^jp\\.sourceforge\\.inputmethod\\.aquaskk\\.Katakana$"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/others/karabiner.xml b/data/others/karabiner.xml
deleted file mode 100644
index c241dce7..00000000
--- a/data/others/karabiner.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- -
- AquaSKK for Jetbrain
-
-
- JetBrains
- com.jetbrains.
-
-
-
- NonLatin
- jp.sourceforge.inputmethod.aquaskk.Hiragana
- jp.sourceforge.inputmethod.aquaskk.Katakana
- jp.sourceforge.inputmethod.aquaskk.HalfWidthKana
-
-
-
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_HIRAGANA
- jp.sourceforge.inputmethod.aquaskk.Hiragana
-
-
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_KATAKANA
- jp.sourceforge.inputmethod.aquaskk.Katakana
-
-
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_HALF_WIDTH_KANA
- jp.sourceforge.inputmethod.aquaskk.HalfWidthKana
-
-
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_ASCII
- jp.sourceforge.inputmethod.aquaskk.Ascii
-
-
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_FULL_WIDTH_ROMAN
- jp.sourceforge.inputmethod.aquaskk.FullWidthRoman
-
-
-
- -
- Change input source to ascii mode by L
- private.aquaskk.jetbrains.full_width_roman
- NonLatin
- JetBrains
-
- __KeyToKey__
- KeyCode::L, ModifierFlag::SHIFT_L,
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_FULL_WIDTH_ROMAN
-
-
- __KeyToKey__
- KeyCode::L, ModifierFlag::SHIFT_R,
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_FULL_WIDTH_ROMAN
-
-
-
- -
- Change input source to ascii mode by l
- private.aquaskk.jetbrains.ascii
- NonLatin
- JetBrains
-
- __KeyToKey__
- KeyCode::L,
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_ASCII
-
-
-
- -
- Change input source to katakana mode by Q
- private.aquaskk.jetbrains.half_width_kana
- NonLatin
- JetBrains
-
- __KeyToKey__
- KeyCode::Q, ModifierFlag::SHIFT_L,
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_HALF_WIDTH_KANA
-
-
- __KeyToKey__
- KeyCode::Q, ModifierFlag::SHIFT_R,
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_HALF_WIDTH_KANA
-
-
-
- -
- Change input source to katakana mode by q
- private.aquaskk.jetbrains.katakana
- NonLatin
- JetBrains
-
- __KeyToKey__
- KeyCode::Q,
- KeyCode::VK_CHANGE_INPUTSOURCE_AQUASKK_KATAKANA
-
-
-
-
-
-
diff --git a/platform/mac/proj/AquaSKK.xcodeproj/project.pbxproj b/platform/mac/proj/AquaSKK.xcodeproj/project.pbxproj
index baa5af35..e1f2bdd1 100644
--- a/platform/mac/proj/AquaSKK.xcodeproj/project.pbxproj
+++ b/platform/mac/proj/AquaSKK.xcodeproj/project.pbxproj
@@ -16,8 +16,8 @@
1397AFB31BCFDD1E004A3E7D /* act.rule in Resources */ = {isa = PBXBuildFile; fileRef = 1397AFB21BCFDD1E004A3E7D /* act.rule */; };
13D9CCA71CCCB02800480486 /* BlacklistApps.m in Sources */ = {isa = PBXBuildFile; fileRef = 13D9CCA61CCCB02800480486 /* BlacklistApps.m */; };
13E607841C2693A300FD8FB9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13E607831C2693A300FD8FB9 /* Images.xcassets */; };
- 13F0D7491DA9CB5B00684A21 /* karabiner.xml in Resources */ = {isa = PBXBuildFile; fileRef = 13F0D7471DA9CB5B00684A21 /* karabiner.xml */; };
13F715941BAD8AFA00F93C56 /* yakumono-ippai.rule in Resources */ = {isa = PBXBuildFile; fileRef = 13F715931BAD8AFA00F93C56 /* yakumono-ippai.rule */; };
+ 4B9B3FE024FB9910008400A4 /* karabiner-elements.json in Resources */ = {isa = PBXBuildFile; fileRef = 4B9B3FDF24FB9910008400A4 /* karabiner-elements.json */; };
D304587A102D3E590055E32F /* SKKInputEnvironment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3045878102D3E590055E32F /* SKKInputEnvironment.cpp */; };
D3046C2C101F3228008A6F47 /* SKKLayoutManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = D3046C2B101F3228008A6F47 /* SKKLayoutManager.mm */; };
D30996690E4C80EA00B2F24E /* SKKRecursiveEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D30996670E4C80EA00B2F24E /* SKKRecursiveEditor.cpp */; };
@@ -170,8 +170,8 @@
13D9CCA51CCCB02800480486 /* BlacklistApps.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlacklistApps.h; sourceTree = ""; };
13D9CCA61CCCB02800480486 /* BlacklistApps.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BlacklistApps.m; sourceTree = ""; };
13E607831C2693A300FD8FB9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AquaSKK/Images.xcassets; sourceTree = ""; };
- 13F0D7471DA9CB5B00684A21 /* karabiner.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = karabiner.xml; sourceTree = ""; };
13F715931BAD8AFA00F93C56 /* yakumono-ippai.rule */ = {isa = PBXFileReference; fileEncoding = 3; lastKnownFileType = text; path = "yakumono-ippai.rule"; sourceTree = ""; };
+ 4B9B3FDF24FB9910008400A4 /* karabiner-elements.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "karabiner-elements.json"; sourceTree = ""; };
D302E2F70EA068EF00E3321E /* SKKInputModeListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKKInputModeListener.h; sourceTree = ""; };
D3045878102D3E590055E32F /* SKKInputEnvironment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SKKInputEnvironment.cpp; sourceTree = ""; };
D3045879102D3E590055E32F /* SKKInputEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKKInputEnvironment.h; sourceTree = ""; };
@@ -434,7 +434,7 @@
13F0D7451DA9CB5B00684A21 /* others */ = {
isa = PBXGroup;
children = (
- 13F0D7471DA9CB5B00684A21 /* karabiner.xml */,
+ 4B9B3FDF24FB9910008400A4 /* karabiner-elements.json */,
);
name = others;
path = ../../../data/others;
@@ -971,7 +971,6 @@
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
- BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 0460;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AquaSKK" */;
@@ -1009,7 +1008,6 @@
D353BE120E175540004C68A6 /* kana-rule.conf in Resources */,
D353BE130E175540004C68A6 /* keymap.conf in Resources */,
D353BE1C0E175552004C68A6 /* AquaSKK-Ascii.png in Resources */,
- 13F0D7491DA9CB5B00684A21 /* karabiner.xml in Resources */,
EA56B0541A22CBA400954B5F /* Mini-Hirakana@2x.tiff in Resources */,
130F69EA1DF40A58001B6DFB /* old-kana.rule in Resources */,
EA56B0491A22C62400954B5F /* AquaSKK-Ascii@2x.png in Resources */,
@@ -1041,6 +1039,7 @@
1397AFB31BCFDD1E004A3E7D /* act.rule in Resources */,
D3F0576610BAD12600F3233E /* period.rule in Resources */,
D357591A10BD72E00066692B /* azik.rule in Resources */,
+ 4B9B3FE024FB9910008400A4 /* karabiner-elements.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};