🔨 修改终端配置.
This commit is contained in:
@@ -51,9 +51,9 @@ public class TerminalPreferenceModel implements GenericsDataModel {
|
||||
private String newConnectionType;
|
||||
|
||||
/**
|
||||
* 终端主题
|
||||
* ssh 主题
|
||||
*/
|
||||
private JSONObject theme;
|
||||
private JSONObject sshTheme;
|
||||
|
||||
/**
|
||||
* ssh 显示设置
|
||||
@@ -61,40 +61,40 @@ public class TerminalPreferenceModel implements GenericsDataModel {
|
||||
private JSONObject sshDisplaySetting;
|
||||
|
||||
/**
|
||||
* rdp 图形化设置
|
||||
* ssh 右键菜单设置
|
||||
*/
|
||||
private JSONObject rdpGraphSetting;
|
||||
private List<String> sshRightMenuSetting;
|
||||
|
||||
/**
|
||||
* ssh 操作栏设置
|
||||
*/
|
||||
private JSONObject sshActionBarSetting;
|
||||
|
||||
/**
|
||||
* ssh 交互设置
|
||||
*/
|
||||
private JSONObject sshInteractSetting;
|
||||
|
||||
/**
|
||||
* ssh 插件设置
|
||||
*/
|
||||
private JSONObject sshPluginsSetting;
|
||||
|
||||
/**
|
||||
* rdp 会话设置
|
||||
*/
|
||||
private JSONObject rdpSessionSetting;
|
||||
|
||||
/**
|
||||
* rdp 图形化设置
|
||||
*/
|
||||
private JSONObject rdpGraphSetting;
|
||||
|
||||
/**
|
||||
* rdp 操作栏设置
|
||||
*/
|
||||
private JSONObject rdpActionBarSetting;
|
||||
|
||||
/**
|
||||
* 右键菜单设置
|
||||
*/
|
||||
private List<String> rightMenuSetting;
|
||||
|
||||
/**
|
||||
* 交互设置
|
||||
*/
|
||||
private JSONObject interactSetting;
|
||||
|
||||
/**
|
||||
* 插件设置
|
||||
*/
|
||||
private JSONObject pluginsSetting;
|
||||
|
||||
/**
|
||||
* 会话设置
|
||||
*/
|
||||
private JSONObject sessionSetting;
|
||||
|
||||
/**
|
||||
* 快捷键设置
|
||||
*/
|
||||
@@ -148,94 +148,6 @@ public class TerminalPreferenceModel implements GenericsDataModel {
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class RdpGraphSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 显示大小
|
||||
*/
|
||||
private String displaySize;
|
||||
|
||||
/**
|
||||
* 显示宽度
|
||||
*/
|
||||
private Integer displayWidth;
|
||||
|
||||
/**
|
||||
* 显示高度
|
||||
*/
|
||||
private Integer displayHeight;
|
||||
|
||||
/**
|
||||
* 启用音频输入
|
||||
*/
|
||||
private Boolean enableAudioInput;
|
||||
|
||||
/**
|
||||
* 启用音频输出
|
||||
*/
|
||||
private Boolean enableAudioOutput;
|
||||
|
||||
/**
|
||||
* 颜色深度
|
||||
*/
|
||||
private Integer colorDepth;
|
||||
|
||||
/**
|
||||
* 无损压缩
|
||||
*/
|
||||
private Boolean forceLossless;
|
||||
|
||||
/**
|
||||
* 启用壁纸
|
||||
*/
|
||||
private Boolean enableWallpaper;
|
||||
|
||||
/**
|
||||
* 启用主题
|
||||
*/
|
||||
private Boolean enableTheming;
|
||||
|
||||
/**
|
||||
* 启动平滑字体
|
||||
*/
|
||||
private Boolean enableFontSmoothing;
|
||||
|
||||
/**
|
||||
* 启用窗口拖动
|
||||
*/
|
||||
private Boolean enableFullWindowDrag;
|
||||
|
||||
/**
|
||||
* 启用桌面合成
|
||||
*/
|
||||
private Boolean enableDesktopComposition;
|
||||
|
||||
/**
|
||||
* 启用菜单动画
|
||||
*/
|
||||
private Boolean enableMenuAnimations;
|
||||
|
||||
/**
|
||||
* 禁用位图缓存
|
||||
*/
|
||||
private Boolean disableBitmapCaching;
|
||||
|
||||
/**
|
||||
* 禁用离屏缓存
|
||||
*/
|
||||
private Boolean disableOffscreenCaching;
|
||||
|
||||
/**
|
||||
* 禁用字形缓存
|
||||
*/
|
||||
private Boolean disableGlyphCaching;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@@ -323,55 +235,7 @@ public class TerminalPreferenceModel implements GenericsDataModel {
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class RdpActionBarSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 位置
|
||||
*/
|
||||
private String position;
|
||||
|
||||
/**
|
||||
* 显示设置
|
||||
*/
|
||||
private Boolean display;
|
||||
|
||||
/**
|
||||
* 组合键
|
||||
*/
|
||||
private Boolean combinationKey;
|
||||
|
||||
/**
|
||||
* 剪切板
|
||||
*/
|
||||
private Boolean clipboard;
|
||||
|
||||
/**
|
||||
* 上传
|
||||
*/
|
||||
private Boolean upload;
|
||||
|
||||
/**
|
||||
* 保存为 rdp 文件
|
||||
*/
|
||||
private Boolean saveRdp;
|
||||
|
||||
/**
|
||||
* 断开连接
|
||||
*/
|
||||
private Boolean disconnect;
|
||||
|
||||
/**
|
||||
* 关闭
|
||||
*/
|
||||
private Boolean close;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class InteractSettingModel implements IJsonObject {
|
||||
public static class SshInteractSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 快速滚动
|
||||
@@ -423,13 +287,23 @@ public class TerminalPreferenceModel implements GenericsDataModel {
|
||||
*/
|
||||
private String wordSeparator;
|
||||
|
||||
/**
|
||||
* 伪终端类型
|
||||
*/
|
||||
private String terminalEmulationType;
|
||||
|
||||
/**
|
||||
* 保存在缓冲区的行数
|
||||
*/
|
||||
private Integer scrollBackLine;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class PluginsSettingModel implements IJsonObject {
|
||||
public static class SshPluginsSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 超链接插件
|
||||
@@ -457,17 +331,153 @@ public class TerminalPreferenceModel implements GenericsDataModel {
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SessionSettingModel implements IJsonObject {
|
||||
public static class RdpGraphSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 伪终端类型
|
||||
* 显示大小
|
||||
*/
|
||||
private String terminalEmulationType;
|
||||
private String displaySize;
|
||||
|
||||
/**
|
||||
* 保存在缓冲区的行数
|
||||
* 显示宽度
|
||||
*/
|
||||
private Integer scrollBackLine;
|
||||
private Integer displayWidth;
|
||||
|
||||
/**
|
||||
* 显示高度
|
||||
*/
|
||||
private Integer displayHeight;
|
||||
|
||||
/**
|
||||
* 颜色深度
|
||||
*/
|
||||
private Integer colorDepth;
|
||||
|
||||
/**
|
||||
* 无损压缩
|
||||
*/
|
||||
private Boolean forceLossless;
|
||||
|
||||
/**
|
||||
* 启用壁纸
|
||||
*/
|
||||
private Boolean enableWallpaper;
|
||||
|
||||
/**
|
||||
* 启用主题
|
||||
*/
|
||||
private Boolean enableTheming;
|
||||
|
||||
/**
|
||||
* 启动平滑字体
|
||||
*/
|
||||
private Boolean enableFontSmoothing;
|
||||
|
||||
/**
|
||||
* 启用窗口拖动
|
||||
*/
|
||||
private Boolean enableFullWindowDrag;
|
||||
|
||||
/**
|
||||
* 启用桌面合成
|
||||
*/
|
||||
private Boolean enableDesktopComposition;
|
||||
|
||||
/**
|
||||
* 启用菜单动画
|
||||
*/
|
||||
private Boolean enableMenuAnimations;
|
||||
|
||||
/**
|
||||
* 禁用位图缓存
|
||||
*/
|
||||
private Boolean disableBitmapCaching;
|
||||
|
||||
/**
|
||||
* 禁用离屏缓存
|
||||
*/
|
||||
private Boolean disableOffscreenCaching;
|
||||
|
||||
/**
|
||||
* 禁用字形缓存
|
||||
*/
|
||||
private Boolean disableGlyphCaching;
|
||||
|
||||
/**
|
||||
* 禁用图形加速
|
||||
*/
|
||||
private Boolean disableGfx;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class RdpActionBarSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 位置
|
||||
*/
|
||||
private String position;
|
||||
|
||||
/**
|
||||
* 显示设置
|
||||
*/
|
||||
private Boolean display;
|
||||
|
||||
/**
|
||||
* 组合键
|
||||
*/
|
||||
private Boolean combinationKey;
|
||||
|
||||
/**
|
||||
* 剪切板
|
||||
*/
|
||||
private Boolean clipboard;
|
||||
|
||||
/**
|
||||
* 上传
|
||||
*/
|
||||
private Boolean upload;
|
||||
|
||||
/**
|
||||
* 保存为 rdp 文件
|
||||
*/
|
||||
private Boolean saveRdp;
|
||||
|
||||
/**
|
||||
* 断开连接
|
||||
*/
|
||||
private Boolean disconnect;
|
||||
|
||||
/**
|
||||
* 关闭
|
||||
*/
|
||||
private Boolean close;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class RdpSessionSettingModel implements IJsonObject {
|
||||
|
||||
/**
|
||||
* 启用音频输入
|
||||
*/
|
||||
private Boolean enableAudioInput;
|
||||
|
||||
/**
|
||||
* 启用音频输出
|
||||
*/
|
||||
private Boolean enableAudioOutput;
|
||||
|
||||
/**
|
||||
* 驱动挂载模式
|
||||
*/
|
||||
private String driveMountMode;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -51,23 +51,23 @@ public class TerminalPreferenceStrategy extends AbstractGenericsDataStrategy<Ter
|
||||
// 连接类型
|
||||
.newConnectionType("group")
|
||||
// ssh 主题
|
||||
.theme(new JSONObject())
|
||||
.sshTheme(new JSONObject())
|
||||
// ssh 显示设置
|
||||
.sshDisplaySetting(JSONObject.parseObject(this.getDefaultSshDisplaySetting()))
|
||||
// rdp 图形化设置
|
||||
.rdpGraphSetting(JSONObject.parseObject(this.getDefaultRdpGraphSetting()))
|
||||
// ssh 操作栏设置
|
||||
.sshActionBarSetting(JSONObject.parseObject(this.getDefaultSshActionBarSetting()))
|
||||
// ssh 右键菜单设置
|
||||
.sshRightMenuSetting(this.getDefaultSshRightMenuSetting())
|
||||
// ssh 交互设置
|
||||
.sshInteractSetting(JSONObject.parseObject(this.getDefaultSshInteractSetting()))
|
||||
// ssh 插件设置
|
||||
.sshPluginsSetting(JSONObject.parseObject(this.getDefaultSshPluginsSetting()))
|
||||
// rdp 图形化设置
|
||||
.rdpGraphSetting(JSONObject.parseObject(this.getDefaultRdpGraphSetting()))
|
||||
// rdp 操作栏设置
|
||||
.rdpActionBarSetting(JSONObject.parseObject(this.getDefaultRdpActionBarSetting()))
|
||||
// ssh 右键菜单设置
|
||||
.rightMenuSetting(this.getDefaultRightMenuSetting())
|
||||
// 交互设置
|
||||
.interactSetting(JSONObject.parseObject(this.getDefaultInteractSetting()))
|
||||
// 插件设置
|
||||
.pluginsSetting(JSONObject.parseObject(this.getDefaultPluginsSetting()))
|
||||
// 会话设置
|
||||
.sessionSetting(JSONObject.parseObject(this.getDefaultSessionSetting()))
|
||||
// rdp 会话设置
|
||||
.rdpSessionSetting(JSONObject.parseObject(this.getDefaultRdpSessionSetting()))
|
||||
// 快捷键设置
|
||||
.shortcutSetting(JSONObject.parseObject(this.getDefaultShortcutSetting()))
|
||||
.build();
|
||||
@@ -94,30 +94,12 @@ public class TerminalPreferenceStrategy extends AbstractGenericsDataStrategy<Ter
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 rdp 图形化默认设置
|
||||
* 获取 ssh 右键菜单默认设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultRdpGraphSetting() {
|
||||
return TerminalPreferenceModel.RdpGraphSettingModel.builder()
|
||||
.displaySize("fit")
|
||||
.displayWidth(0)
|
||||
.displayHeight(0)
|
||||
.colorDepth(24)
|
||||
.enableAudioInput(false)
|
||||
.enableAudioOutput(true)
|
||||
.forceLossless(true)
|
||||
.enableWallpaper(true)
|
||||
.enableTheming(true)
|
||||
.enableFontSmoothing(true)
|
||||
.enableFullWindowDrag(true)
|
||||
.enableDesktopComposition(true)
|
||||
.enableMenuAnimations(false)
|
||||
.disableBitmapCaching(false)
|
||||
.disableOffscreenCaching(false)
|
||||
.disableGlyphCaching(false)
|
||||
.build()
|
||||
.toJsonString();
|
||||
private List<String> getDefaultSshRightMenuSetting() {
|
||||
return Lists.of("selectAll", "copy", "paste", "search", "clear");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,6 +129,70 @@ public class TerminalPreferenceStrategy extends AbstractGenericsDataStrategy<Ter
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 ssh 默认交互设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultSshInteractSetting() {
|
||||
return TerminalPreferenceModel.SshInteractSettingModel.builder()
|
||||
.fastScrollModifier(true)
|
||||
.altClickMovesCursor(true)
|
||||
.rightClickSelectsWord(false)
|
||||
.selectionChangeCopy(false)
|
||||
.copyAutoTrim(false)
|
||||
.pasteAutoTrim(false)
|
||||
.rightClickPaste(false)
|
||||
.enableRightClickMenu(true)
|
||||
.enableBell(false)
|
||||
.wordSeparator("/\\()\"'` -.,:;<>~!@#$%^&*|+=[]{}~?│")
|
||||
.terminalEmulationType(TerminalType.XTERM.getType())
|
||||
.scrollBackLine(1000)
|
||||
.build()
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取默认插件设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultSshPluginsSetting() {
|
||||
return TerminalPreferenceModel.SshPluginsSettingModel.builder()
|
||||
.enableWeblinkPlugin(true)
|
||||
.enableWebglPlugin(true)
|
||||
.enableUnicodePlugin(true)
|
||||
.enableImagePlugin(false)
|
||||
.build()
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 rdp 图形化默认设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultRdpGraphSetting() {
|
||||
return TerminalPreferenceModel.RdpGraphSettingModel.builder()
|
||||
.displaySize("fit")
|
||||
.displayWidth(0)
|
||||
.displayHeight(0)
|
||||
.colorDepth(24)
|
||||
.forceLossless(true)
|
||||
.enableWallpaper(true)
|
||||
.enableTheming(true)
|
||||
.enableFontSmoothing(true)
|
||||
.enableFullWindowDrag(true)
|
||||
.enableDesktopComposition(true)
|
||||
.enableMenuAnimations(false)
|
||||
.disableBitmapCaching(false)
|
||||
.disableOffscreenCaching(false)
|
||||
.disableGlyphCaching(false)
|
||||
.disableGfx(false)
|
||||
.build()
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 rdp 操作栏默认设置
|
||||
*
|
||||
@@ -167,59 +213,15 @@ public class TerminalPreferenceStrategy extends AbstractGenericsDataStrategy<Ter
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 ssh 右键菜单默认设置
|
||||
* 获取 rdp 默认会话设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private List<String> getDefaultRightMenuSetting() {
|
||||
return Lists.of("selectAll", "copy", "paste", "search", "clear");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取默认交互设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultInteractSetting() {
|
||||
return TerminalPreferenceModel.InteractSettingModel.builder()
|
||||
.fastScrollModifier(true)
|
||||
.altClickMovesCursor(true)
|
||||
.rightClickSelectsWord(false)
|
||||
.selectionChangeCopy(false)
|
||||
.copyAutoTrim(false)
|
||||
.pasteAutoTrim(false)
|
||||
.rightClickPaste(false)
|
||||
.enableRightClickMenu(true)
|
||||
.enableBell(false)
|
||||
.wordSeparator("/\\()\"'` -.,:;<>~!@#$%^&*|+=[]{}~?│")
|
||||
.build()
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取默认插件设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultPluginsSetting() {
|
||||
return TerminalPreferenceModel.PluginsSettingModel.builder()
|
||||
.enableWeblinkPlugin(true)
|
||||
.enableWebglPlugin(true)
|
||||
.enableUnicodePlugin(true)
|
||||
.enableImagePlugin(false)
|
||||
.build()
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取默认会话设置
|
||||
*
|
||||
* @return setting
|
||||
*/
|
||||
private String getDefaultSessionSetting() {
|
||||
return TerminalPreferenceModel.SessionSettingModel.builder()
|
||||
.terminalEmulationType(TerminalType.XTERM.getType())
|
||||
.scrollBackLine(1000)
|
||||
private String getDefaultRdpSessionSetting() {
|
||||
return TerminalPreferenceModel.RdpSessionSettingModel.builder()
|
||||
.enableAudioInput(false)
|
||||
.enableAudioOutput(true)
|
||||
.driveMountMode("ASSET")
|
||||
.build()
|
||||
.toJsonString();
|
||||
}
|
||||
|
||||
@@ -306,10 +306,15 @@ public interface GuacdConst {
|
||||
String DISABLE_OFFSCREEN_CACHING = "disable-offscreen-caching";
|
||||
|
||||
/**
|
||||
* 禁用字形缓存 boolean 默认禁用
|
||||
* 禁用字形缓存 boolean
|
||||
*/
|
||||
String DISABLE_GLYPH_CACHING = "disable-glyph-caching";
|
||||
|
||||
/**
|
||||
* 禁用图形加速 boolean
|
||||
*/
|
||||
String DISABLE_GFX = "disable-gfx";
|
||||
|
||||
/**
|
||||
* 远程应用名称
|
||||
*/
|
||||
|
||||
@@ -126,6 +126,16 @@ public class TerminalChannelExtra {
|
||||
*/
|
||||
private Boolean disableGlyphCaching;
|
||||
|
||||
/**
|
||||
* 禁用图形加速
|
||||
*/
|
||||
private Boolean disableGfx;
|
||||
|
||||
/**
|
||||
* 驱动挂载模式
|
||||
*/
|
||||
private String driveMountMode;
|
||||
|
||||
// -------------------- vnc --------------------
|
||||
|
||||
}
|
||||
|
||||
@@ -101,9 +101,10 @@ public class RdpSession extends AbstractGuacdSession<TerminalSessionRdpConfig> i
|
||||
tunnel.setParameter(GuacdConst.ENABLE_FULL_WINDOW_DRAG, extra.getEnableFullWindowDrag());
|
||||
tunnel.setParameter(GuacdConst.ENABLE_DESKTOP_COMPOSITION, extra.getEnableDesktopComposition());
|
||||
tunnel.setParameter(GuacdConst.ENABLE_MENU_ANIMATIONS, extra.getEnableMenuAnimations());
|
||||
tunnel.setParameter(GuacdConst.DISABLE_BITMAP_CACHING, extra.getDisableBitmapCaching());
|
||||
tunnel.setParameter(GuacdConst.DISABLE_OFFSCREEN_CACHING, extra.getDisableOffscreenCaching());
|
||||
tunnel.setParameter(GuacdConst.DISABLE_GLYPH_CACHING, extra.getDisableGlyphCaching());
|
||||
tunnel.setParameter(GuacdConst.DISABLE_BITMAP_CACHING, extra.getDisableBitmapCaching());
|
||||
tunnel.setParameter(GuacdConst.DISABLE_GFX, extra.getDisableGfx());
|
||||
// 音频
|
||||
tunnel.setAudioMimeTypes(GuacdConst.AUDIO_MIMETYPES);
|
||||
tunnel.setParameter(GuacdConst.ENABLE_AUDIO_INPUT, extra.getEnableAudioInput());
|
||||
@@ -153,8 +154,9 @@ public class RdpSession extends AbstractGuacdSession<TerminalSessionRdpConfig> i
|
||||
extra.setEnableDesktopComposition(false);
|
||||
extra.setEnableMenuAnimations(false);
|
||||
extra.setDisableBitmapCaching(false);
|
||||
extra.setDisableOffscreenCaching(false);
|
||||
extra.setDisableGlyphCaching(false);
|
||||
extra.setDisableBitmapCaching(false);
|
||||
extra.setDisableGfx(false);
|
||||
extra.setEnableAudioInput(false);
|
||||
extra.setEnableAudioOutput(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user