diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java index e025cd6fad..dfb3a76e9c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java @@ -252,4 +252,37 @@ public interface KeyRemappingConfig extends Config { return new ModifierlessKeybind(KeyEvent.VK_ESCAPE, 0); } + + @ConfigItem( + position = 20, + keyName = "ctrl", + name = "CTRL", + description = "The key which will replace {CTRL}." + ) + default ModifierlessKeybind ctrl() + { + return new ModifierlessKeybind(KeyEvent.VK_CONTROL, 0); + } + + @ConfigItem( + position = 21, + keyName = "alt", + name = "ALT", + description = "The key which will replace {ALT}." + ) + default ModifierlessKeybind alt() + { + return new ModifierlessKeybind(KeyEvent.VK_ALT, 0); + } + + @ConfigItem( + position = 22, + keyName = "shift", + name = "SHIFT", + description = "The key which will replace {SHIFT}." + ) + default ModifierlessKeybind shift() + { + return new ModifierlessKeybind(KeyEvent.VK_SHIFT, 0); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java index bdf20cffed..a2669f202d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java @@ -162,6 +162,21 @@ class KeyRemappingListener extends MouseAdapter implements KeyListener modified.put(e.getKeyCode(), KeyEvent.VK_ESCAPE); e.setKeyCode(KeyEvent.VK_ESCAPE); } + else if (plugin.getCtrl().matches(e)) + { + modified.put(e.getKeyCode(), KeyEvent.VK_CONTROL); + e.setKeyCode(KeyEvent.VK_CONTROL); + } + else if (plugin.getAlt().matches(e)) + { + modified.put(e.getKeyCode(), KeyEvent.VK_ALT); + e.setKeyCode(KeyEvent.VK_ALT); + } + else if (plugin.getShift().matches(e)) + { + modified.put(e.getKeyCode(), KeyEvent.VK_SHIFT); + e.setKeyCode(KeyEvent.VK_SHIFT); + } } switch (e.getKeyCode()) @@ -293,6 +308,18 @@ class KeyRemappingListener extends MouseAdapter implements KeyListener { e.setKeyCode(KeyEvent.VK_ESCAPE); } + else if (plugin.getCtrl().matches(e)) + { + e.setKeyCode(KeyEvent.VK_CONTROL); + } + else if (plugin.getAlt().matches(e)) + { + e.setKeyCode(KeyEvent.VK_ALT); + } + else if (plugin.getShift().matches(e)) + { + e.setKeyCode(KeyEvent.VK_SHIFT); + } } } else diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java index 1a851a7aa8..3302c72cb7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java @@ -122,6 +122,12 @@ public class KeyRemappingPlugin extends Plugin private ModifierlessKeybind f12; @Getter(AccessLevel.PACKAGE) private ModifierlessKeybind esc; + @Getter(AccessLevel.PACKAGE) + private ModifierlessKeybind ctrl; + @Getter(AccessLevel.PACKAGE) + private ModifierlessKeybind alt; + @Getter(AccessLevel.PACKAGE) + private ModifierlessKeybind shift; @Override protected void startUp() @@ -299,5 +305,8 @@ public class KeyRemappingPlugin extends Plugin this.f11 = config.f11(); this.f12 = config.f12(); this.esc = config.esc(); + this.ctrl = config.ctrl(); + this.alt = config.alt(); + this.shift = config.shift(); } }