diff --git a/src/api/agents.js b/src/api/agents.js index d8c2b662..8abf5478 100644 --- a/src/api/agents.js +++ b/src/api/agents.js @@ -396,3 +396,14 @@ export async function createRegistryValue(agentId, path, name, type, data) { throw e; } } + +export async function fetchAgentShell(agent_id) { + try { + const { data } = await axios.get( + `${baseUrl}/${agent_id}/terminal-defaults/`, + ); + return data; + } catch (e) { + console.error(e); + } +} diff --git a/src/components/agents/remotebg/TerminalManager.vue b/src/components/agents/remotebg/TerminalManager.vue new file mode 100644 index 00000000..c452ee36 --- /dev/null +++ b/src/components/agents/remotebg/TerminalManager.vue @@ -0,0 +1,528 @@ + + + + + diff --git a/src/components/modals/agents/EditAgent.vue b/src/components/modals/agents/EditAgent.vue index db0b210d..e3b23c68 100644 --- a/src/components/modals/agents/EditAgent.vue +++ b/src/components/modals/agents/EditAgent.vue @@ -73,6 +73,28 @@ class="col-8" /> + +
Default Terminal
+
+ + +
+
Run checks every:
{ diff --git a/src/components/modals/coresettings/EditCoreSettings.vue b/src/components/modals/coresettings/EditCoreSettings.vue index b6272d06..e8470395 100644 --- a/src/components/modals/coresettings/EditCoreSettings.vue +++ b/src/components/modals/coresettings/EditCoreSettings.vue @@ -220,6 +220,82 @@ :rules="[(val) => val >= 0 || 'Minimum is 0']" />
+ +
Terminal Experience
+
+ +
+
+ +
Windows Default Terminal
+
+ + +
+
+ +
Linux Default Terminal
+
+ + +
+
+ +
Mac Default Terminal
+
+ + +
+
Reset Patch Policy on Agents:
@@ -797,6 +873,31 @@ export default { hosted() { return this.$store.state.hosted; }, + terminalModeOptions() { + return [ + { label: "Use new terminal", value: "new" }, + { label: "Use legacy terminal", value: "legacy" }, + ]; + }, + windowsShellOptions() { + return [ + { label: "CMD", value: "cmd" }, + { label: "PowerShell", value: "powershell" }, + { label: "Custom", value: "custom" }, + ]; + }, + linuxShellOptions() { + return [ + { label: "Bash", value: "bash" }, + { label: "Custom", value: "custom" }, + ]; + }, + darwinShellOptions() { + return [ + { label: "Bash", value: "bash" }, + { label: "Custom", value: "custom" }, + ]; + }, }, watch: { tab(newTab, oldTab) { diff --git a/src/css/app.sass b/src/css/app.sass index 2280f2ae..1065095e 100644 --- a/src/css/app.sass +++ b/src/css/app.sass @@ -1 +1,26 @@ // app global css in Sass form + +.xterm .xterm-viewport + scrollbar-width: thin + scrollbar-color: rgba(255, 255, 255, 0.35) transparent + +.xterm .xterm-viewport::-webkit-scrollbar-track + background: transparent + +.xterm .xterm-viewport::-webkit-scrollbar-thumb + background-color: rgba(255, 255, 255, 0.35) + border-radius: 8px + border: 2px solid transparent + background-clip: content-box + +.xterm .xterm-viewport::-webkit-scrollbar-thumb:hover + background-color: rgba(255, 255, 255, 0.6) + +.xterm .xterm-viewport::-webkit-scrollbar-thumb + opacity: 0 + transition: opacity 0.2s ease + +.xterm .xterm-viewport::-webkit-scrollbar-button + display: none + width: 0 + height: 0 \ No newline at end of file diff --git a/src/views/RemoteBackground.vue b/src/views/RemoteBackground.vue index 8b5db9f6..72c8421a 100644 --- a/src/views/RemoteBackground.vue +++ b/src/views/RemoteBackground.vue @@ -39,7 +39,13 @@ +