feat: 设置快捷键.

This commit is contained in:
lijiahang
2024-01-16 18:52:07 +08:00
parent 220a0d4035
commit c750ce8ed2
20 changed files with 203 additions and 11 deletions

View File

@@ -47,6 +47,9 @@ public class TerminalPreferenceModel implements PreferenceModel {
@Schema(description = "会话设置")
private JSONObject sessionSetting;
@Schema(description = "快捷键设置")
private JSONObject shortcutSetting;
@Data
@Builder
@NoArgsConstructor
@@ -145,4 +148,44 @@ public class TerminalPreferenceModel implements PreferenceModel {
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ShortcutSettingModel implements IJsonObject {
@Schema(description = "是否启用")
private Boolean enabled;
@Schema(description = "快捷键定义")
private List<ShortcutKeysModel> keys;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ShortcutKeysModel implements IJsonObject {
@Schema(description = "快捷键操作")
private String item;
@Schema(description = "ctrl 按键")
private Boolean ctrlKey;
@Schema(description = "shift 按键")
private Boolean shiftKey;
@Schema(description = "alt 按键")
private Boolean altKey;
@Schema(description = "实际按键")
private String code;
@Schema(description = "是否启用")
private Boolean enabled;
}
}

View File

@@ -58,6 +58,27 @@ public class TerminalPreferenceStrategy implements IPreferenceStrategy<TerminalP
.scrollBackLine(1000)
.build()
.toJsonString();
// 默认快捷键设置
String shortcutSetting = TerminalPreferenceModel.ShortcutSettingModel.builder()
.enabled(true)
.keys(Lists.of(
new TerminalPreferenceModel.ShortcutKeysModel("copy", true, true, false, "KeyC", true),
new TerminalPreferenceModel.ShortcutKeysModel("paste", true, true, false, "KeyV", true),
new TerminalPreferenceModel.ShortcutKeysModel("toTop", true, true, false, "ArrowUp", true),
new TerminalPreferenceModel.ShortcutKeysModel("toBottom", true, true, false, "ArrowDown", true),
new TerminalPreferenceModel.ShortcutKeysModel("selectAll", true, true, false, "KeyA", true),
new TerminalPreferenceModel.ShortcutKeysModel("search", true, true, false, "KeyF", true),
new TerminalPreferenceModel.ShortcutKeysModel("commandEditor", true, false, true, "KeyE", true),
new TerminalPreferenceModel.ShortcutKeysModel("fontSizePlus", true, false, true, "Equal", true),
new TerminalPreferenceModel.ShortcutKeysModel("fontSizeSubtract", true, false, true, "Minus", true),
new TerminalPreferenceModel.ShortcutKeysModel("closeTab", true, false, true, "KeyW", true),
new TerminalPreferenceModel.ShortcutKeysModel("changeToPrevTab", true, false, true, "ArrowLeft", true),
new TerminalPreferenceModel.ShortcutKeysModel("changeToNextTab", true, false, true, "ArrowRight", true),
new TerminalPreferenceModel.ShortcutKeysModel("openCopyTerminalTab", true, false, true, "KeyO", true),
new TerminalPreferenceModel.ShortcutKeysModel("openNewConnectTab", true, false, true, "KeyN", true)
))
.build()
.toJsonString();
// 默认配置
return TerminalPreferenceModel.builder()
.newConnectionType("group")
@@ -68,6 +89,7 @@ public class TerminalPreferenceStrategy implements IPreferenceStrategy<TerminalP
.interactSetting(JSONObject.parseObject(defaultInteractSetting))
.pluginsSetting(JSONObject.parseObject(defaultPluginsSetting))
.sessionSetting(JSONObject.parseObject(defaultSessionSetting))
.shortcutSetting(JSONObject.parseObject(shortcutSetting))
.build();
}