Only in KeyRemap4MacBook-5.1.0: KeyRemap4MacBook-5.1.0.pkg Only in KeyRemap4MacBook-5.1.0: KeyRemap4MacBook-5.1.0.pkg.tar.gz Only in KeyRemap4MacBook-5.1.0.org: emacs+term.diff Only in KeyRemap4MacBook-5.1.0/files: .DS_Store diff -aru KeyRemap4MacBook-5.1.0.org/files/prefpane/checkbox.xml KeyRemap4MacBook-5.1.0/files/prefpane/checkbox.xml --- KeyRemap4MacBook-5.1.0.org/files/prefpane/checkbox.xml 2008-05-20 21:00:48.000000000 +0900 +++ KeyRemap4MacBook-5.1.0/files/prefpane/checkbox.xml 2008-11-29 12:24:53.000000000 +0900 @@ -713,6 +713,14 @@ Emacs Mode + Command+W to Command+C + option.emacsmode_commandW + + + Control+G to ESC + option.emacsmode_controlG + + Control+D to Forward Delete option.emacsmode_controlD @@ -733,6 +741,10 @@ option.emacsmode_controlM + Control+J to Return + option.emacsmode_controlJ + + Control+PNBF to Up/Down/Left/Right option.emacsmode_controlPNBF @@ -745,10 +757,22 @@ option.emacsmode_optionV + Control+S to Command+F + option.emacsmode_controlS + + Command+V to PageUp option.emacsmode_commandV + Control+/ to Command+Z + option.emacsmode_controlSLASH + + + Control+Shift+/ to Command+Shift+Z + option.emacsmode_controlshiftSLASH + + Control+Y to Command+V option.emacsmode_controlY @@ -761,6 +785,10 @@ option.emacsmode_controlK + Option+W to Command+C + option.emacsmode_optionW + + Option+BF to Option+Left/Right option.emacsmode_optionBF @@ -781,7 +809,7 @@ option.emacsmode_ex_controlQ - [ex] Control+W to Option+Delete + [ex] Control+W to Command+X option.emacsmode_ex_controlW @@ -1015,6 +1043,10 @@ Enable at only Terminal + Remap Control+/ to Control+SHIFT+- + remap.app_term_controlSlash + + Remap Command_L to Option_L remap.app_term_commandL2optionL diff -aru KeyRemap4MacBook-5.1.0.org/files/share/reset KeyRemap4MacBook-5.1.0/files/share/reset --- KeyRemap4MacBook-5.1.0.org/files/share/reset 2008-05-26 00:47:27.000000000 +0900 +++ KeyRemap4MacBook-5.1.0/files/share/reset 2008-11-29 12:26:43.000000000 +0900 @@ -126,18 +126,25 @@ remap.commandTab2f5 0 remap.optionTab2commandTab 0 remap.optionTab2f5 0 +option.emacsmode_commandW 0 +option.emacsmode_controlG 0 option.emacsmode_controlD 0 option.emacsmode_controlH 0 option.emacsmode_controlI 0 option.emacsmode_controlLeftbracket 0 option.emacsmode_controlM 0 +option.emacsmode_controlJ 0 option.emacsmode_controlPNBF 0 option.emacsmode_controlV 0 option.emacsmode_optionV 0 +option.emacsmode_controlS 0 option.emacsmode_commandV 0 +option.emacsmode_controlSLASH 0 +option.emacsmode_controlshiftSLASH 0 option.emacsmode_controlY 0 option.emacsmode_controlAE 0 option.emacsmode_controlK 0 +option.emacsmode_optionW 0 option.emacsmode_optionBF 0 option.emacsmode_optionD 0 option.emacsmode_optionLtGt 0 @@ -181,6 +188,7 @@ option.keypad2spaces_modifier_shift 0 remap.app_vm_commandspace2optionbackquote 0 remap.app_finder_return2commandO 0 +remap.app_term_controlSlash 0 remap.app_term_commandL2optionL 0 remap.qwerty2colemak 0 remap.pc_application2commandL 0 Only in KeyRemap4MacBook-5.1.0/src/core: .DS_Store diff -aru KeyRemap4MacBook-5.1.0.org/src/core/kext/keycode.hpp KeyRemap4MacBook-5.1.0/src/core/kext/keycode.hpp --- KeyRemap4MacBook-5.1.0.org/src/core/kext/keycode.hpp 2008-05-21 01:54:33.000000000 +0900 +++ KeyRemap4MacBook-5.1.0/src/core/kext/keycode.hpp 2008-11-29 09:52:17.000000000 +0900 @@ -81,7 +81,9 @@ F = 3, H = 4, G = 5, + Z = 6, X = 7, + C = 8, V = 9, B = 11, Q = 12, diff -aru KeyRemap4MacBook-5.1.0.org/src/core/kext/remap.cpp KeyRemap4MacBook-5.1.0/src/core/kext/remap.cpp --- KeyRemap4MacBook-5.1.0.org/src/core/kext/remap.cpp 2008-05-25 23:46:19.000000000 +0900 +++ KeyRemap4MacBook-5.1.0/src/core/kext/remap.cpp 2008-11-29 12:25:06.000000000 +0900 @@ -1258,9 +1258,21 @@ bool ignore = is_terminal || is_virtualmachine || is_x11; + if (allFlagStatus.isHeldDown_command()) { + // Command+W -> Command+C + if (config.option_emacsmode_commandW && *(params.key) == KeyCode::W && ! ignore) { + *(params.key) = KeyCode::C; + } + } + if (allFlagStatus.isHeldDown_control()) { bool cancel_control = false; + // Control+G -> ESC + if (config.option_emacsmode_controlG && *(params.key) == KeyCode::G && ! ignore) { + *(params.key) = KeyCode::ESCAPE; + cancel_control = true; + } // Control+D -> FORWARD_DELETE if (config.option_emacsmode_controlD && *(params.key) == KeyCode::D) { bool doremap = ! ignore; @@ -1309,6 +1321,11 @@ cancel_control = true; } } + // Control+J -> RETURN + if (config.option_emacsmode_controlJ && *(params.key) == KeyCode::J && ! ignore) { + *(params.key) = KeyCode::RETURN; + cancel_control = true; + } // Control+[ -> ESCAPE if (config.option_emacsmode_controlLeftbracket && *(params.key) == KeyCode::BRACKET_LEFT) { bool doremap = ! ignore; @@ -1353,15 +1370,36 @@ } // Control+V -> PAGEDOWN if (config.option_emacsmode_controlV && *(params.key) == KeyCode::V && ! ignore) { - *(params.key) = KeyCode::PAGEDOWN; - cancel_control = true; + *(params.key) = KeyCode::PAGEDOWN; + cancel_control = true; + + } + // Control+/ -> Command+Z + if (config.option_emacsmode_controlSLASH && *(params.key) == KeyCode::SLASH && ! ignore) { + *(params.key) = KeyCode::Z; + allFlagStatus.commandL.temporary_increase(); + cancel_control = true; + } + // Control+Shift+/ -> Command+Shift+Z + if (config.option_emacsmode_controlshiftSLASH && *(params.key) == KeyCode::SLASH && ! ignore) { + if (! allFlagStatus.isHeldDown_shift()) return; + *(params.key) = KeyCode::Z; + allFlagStatus.shiftL.temporary_increase(); + allFlagStatus.commandL.temporary_increase(); + cancel_control = true; + } + // Control+S -> Command+F + if (config.option_emacsmode_controlS && *(params.key) == KeyCode::S && ! ignore) { + *(params.key) = KeyCode::F; + allFlagStatus.commandL.temporary_increase(); + cancel_control = true; } // Control+Y -> Command+V // *** Note: You need to handle option_emacsmode_controlY after option_emacsmode_controlV *** if (config.option_emacsmode_controlY && *(params.key) == KeyCode::Y && ! ignore) { - *(params.key) = KeyCode::V; - allFlagStatus.commandL.temporary_increase(); - cancel_control = true; + *(params.key) = KeyCode::V; + allFlagStatus.commandL.temporary_increase(); + cancel_control = true; } // Control+AE -> Command+LEFT/Right if (config.option_emacsmode_controlAE) { @@ -1414,10 +1452,10 @@ *(params.key) = KeyCode::PAGEUP; cancel_control = true; } - // Control+W -> Option+DELETE + // Control+W -> Command+X if (config.option_emacsmode_ex_controlW && *(params.key) == KeyCode::W && ! ignore) { - *(params.key) = KeyCode::DELETE; - allFlagStatus.optionL.temporary_increase(); + *(params.key) = KeyCode::X; + allFlagStatus.commandL.temporary_increase(); cancel_control = true; } // Control+U -> Command+Shift+Left,Command+X @@ -1468,6 +1506,12 @@ if (allFlagStatus.isHeldDown_option()) { bool cancel_option = false; + // Option+W -> Command+C + if (config.option_emacsmode_optionW && *(params.key) == KeyCode::W && ! ignore) { + *(params.key) = KeyCode::C; + allFlagStatus.commandL.temporary_increase(); + cancel_option = true; + } // Option+V -> PAGEUP if (config.option_emacsmode_optionV && *(params.key) == KeyCode::V && ! ignore) { *(params.key) = KeyCode::PAGEUP; @@ -1846,10 +1890,11 @@ remap_app_term_commandL2optionL(const RemapParams ¶ms) { if (! config.remap_app_term_commandL2optionL) return; - if (! (params.activeApplicationInfo)->is_terminal) return; + if (*(params.key) == KeyCode::COMMAND_L) { + unsigned int flags = allFlagStatus.makeFlags(params); if (RemapUtil::isModifierOn(flags, ModifierFlag::COMMAND_L)) { allFlagStatus.optionL.increase(); @@ -1862,6 +1907,18 @@ } } + void + remap_app_term_controlSlash(const RemapParams ¶ms) + { + if (! config.remap_app_term_controlSlash) return; + if (! (params.activeApplicationInfo)->is_terminal) return; + if (*(params.key) == KeyCode::SLASH && allFlagStatus.isHeldDown_control()) { + if (! config.remap_app_term_controlSlash) return; + *(params.key) = KeyCode::MINUS; + allFlagStatus.shiftL.temporary_increase(); + } + } + // ---------------------------------------- void remap_qwerty2colemak(const RemapParams ¶ms) @@ -2748,7 +2805,7 @@ // *** Note: we need to call remap_app_term_commandL2optionL as possible late. *** // *** If any *2commandL remappings is enable, remap_app_term_commandL2optionL needs to handle it *** remap_app_term_commandL2optionL(params); - + remap_app_term_controlSlash(params); // ------------------------------------------------------------ *(params.flags) = allFlagStatus.makeFlags(params);