* fix select edit host but not update view (#438) * fix: Checksum issue with chocolatey * fix: Remove homebrew old stuff * Add Korean translation (#439) Co-authored-by: 송준우 <2484@coreit.co.kr> * feat: Automate flatpak * fix: Add imagemagik to electron builder to resolve build error * fix: Build error with runtime repo flag * fix: Flatpak runtime error and install freedesktop ver warning * fix: Flatpak runtime error and install freedesktop ver warning * feat: Re-add homebrew cask and move scripts to backend * fix: No sandbox flag issue * fix: Change name for electron macos cask output * fix: Sandbox error with Linux * fix: Remove comming soon for app stores in readme * Adding Comment at the end of the public_key on the host on deploy (#440) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * -Add New Interface for Credential DB -Add Credential Name as a comment into the server authorized_key file --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> * Sudo auto fill password (#441) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * Feature Sudo password auto-fill; * Fix locale json shema; --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> * Added Italian Language; (#445) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * Added Italian Language; --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> * Auto collapse snippet folders (#448) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * feat: Add collapsable snippets (customizable in user profile) * Translations (#447) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * Added Italian Language; * Fix translations; Removed duplicate keys, synchronised other languages using English as the source, translated added keys, fixed inaccurate translations. --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> * Remove PTY-level keepalive (#449) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * Remove PTY-level keepalive to prevent unwanted terminal output; use SSH-level keepalive instead --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> * feat: Seperate server stats and tunnel management (improved both UI's) then started initial docker implementation * fix: finalize adding docker to db * feat: Add docker management support (local squash) * Fix RBAC role system bugs and improve UX (#446) * Fix RBAC role system bugs and improve UX - Fix user list dropdown selection in host sharing - Fix role sharing permissions to include role-based access - Fix translation template interpolation for success messages - Standardize system roles to admin and user only - Auto-assign user role to new registrations - Remove blocking confirmation dialogs in modal contexts - Add missing i18n keys for common actions - Fix button type to prevent unintended form submissions * Enhance RBAC system with UI improvements and security fixes - Move role assignment to Users tab with per-user role management - Protect system roles (admin/user) from editing and manual assignment - Simplify permission system: remove Use level, keep View and Manage - Hide Update button and Sharing tab for view-only/shared hosts - Prevent users from sharing hosts with themselves - Unify table and modal styling across admin panels - Auto-assign system roles on user registration - Add permission metadata to host interface * Add empty state message for role assignment - Display helpful message when no custom roles available - Clarify that system roles are auto-assigned - Add noCustomRolesToAssign translation in English and Chinese * fix: Prevent credential sharing errors for shared hosts - Skip credential resolution for shared hosts with credential authentication to prevent decryption errors (credentials are encrypted per-user) - Add warning alert in sharing tab when host uses credential authentication - Inform users that shared users cannot connect to credential-based hosts - Add translations for credential sharing warning (EN/ZH) This prevents authentication failures when sharing hosts configured with credential authentication while maintaining security by keeping credentials isolated per user. * feat: Improve rbac UI and fixes some bugs --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Co-authored-by: LukeGus <bugattiguy527@gmail.com> * SOCKS5 support (#452) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * SOCKS5 support Adding single and chain socks5 proxy support * fix: cleanup files --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Co-authored-by: LukeGus <bugattiguy527@gmail.com> * Notes and Expiry fields add (#453) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * Notes and Expiry add * fix: cleanup files --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Co-authored-by: LukeGus <bugattiguy527@gmail.com> * fix: ssh host types * fix: sudo incorrect styling and remove expiration date * feat: add sudo password and add diagonal bg's * fix: snippet running on enter key * fix: base64 decoding * fix: improve server stats / rbac * fix: wrap ssh host json export in hosts array * feat: auto trim host inputs, fix file manager jump hosts, dashboard prevent duplicates, file manager terminal not size updating, improve left sidebar sorting, hide/show tags, add apperance user profile tab, add new host manager tabs. * feat: improve terminal connection speed * fix: sqlite constriant errors and support non-root user (nginx perm issue) * feat: add beta syntax highlighing to terminal * feat: update imports and improve admin settings user management * chore: update translations * chore: update translations * feat: Complete light mode implementation with semantic theme system (#450) - Add comprehensive light/dark mode CSS variables with semantic naming - Implement theme-aware scrollbars using CSS variables - Add light mode backgrounds: --bg-base, --bg-elevated, --bg-surface, etc. - Add theme-aware borders: --border-base, --border-panel, --border-subtle - Add semantic text colors: --foreground-secondary, --foreground-subtle - Convert oklch colors to hex for better compatibility - Add theme awareness to CodeMirror editors - Update dark mode colors for consistency (background, sidebar, card, muted, input) - Add Tailwind color mappings for semantic classes Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> * fix: syntax errors * chore: updating/match themes and split admin settings * feat: add translation workflow and remove old translation.json * fix: translation workflow error * fix: translation workflow error * feat: improve translation system and update workflow * fix: wrong path for translations * fix: change translation to flat files * fix: gh rule error * chore: auto-translate to multiple languages (#458) * chore: improve organization and made a few styling changes in host manager * feat: improve terminal stability and split out the host manager * fix: add unnversiioned files * chore: migrate all to use the new theme system * fix: wrong animation line colors * fix: rbac implementation general issues (local squash) * fix: remove unneeded files * feat: add 10 new langs * chore: update gitnore * chore: auto-translate to multiple languages (#459) * fix: improve tunnel system * fix: properly split tabs, still need to fix up the host manager * chore: cleanup files (possible RC) * feat: add norwegian * chore: auto-translate to multiple languages (#461) * fix: small qol fixes and began readme update * fix: run cleanup script * feat: add docker docs button * feat: general bug fixes and readme updates * fix: translations * chore: auto-translate to multiple languages (#462) * fix: cleanup files * fix: test new translation issue and add better server-stats support * fix: fix translate error * chore: auto-translate to multiple languages (#463) * fix: fix translate mismatching text * chore: auto-translate to multiple languages (#465) * fix: fix translate mismatching text * fix: fix translate mismatching text * chore: auto-translate to multiple languages (#466) * fix: fix translate mismatching text * fix: fix translate mismatching text * fix: fix translate mismatching text * chore: auto-translate to multiple languages (#467) * fix: fix translate mismatching text * chore: auto-translate to multiple languages (#468) * feat: add to readme, a few qol changes, and improve server stats in general * chore: auto-translate to multiple languages (#469) * feat: turned disk uage into graph and fixed issue with termina console * fix: electron build error and hide icons when shared * chore: run clean * fix: general server stats issues, file manager decoding, ui qol * fix: add dashboard line breaks * fix: docker console error * fix: docker console not loading and mismatched stripped background for electron * fix: docker console not loading * chore: docker console not loading in docker * chore: translate readme to chinese * chore: match package lock to package json * chore: nginx config issue for dokcer console * chore: auto-translate to multiple languages (#470) --------- Co-authored-by: Tran Trung Kien <kientt13.7@gmail.com> Co-authored-by: junu <bigdwarf_@naver.com> Co-authored-by: 송준우 <2484@coreit.co.kr> Co-authored-by: SlimGary <trash.slim@gmail.com> Co-authored-by: Nunzio Marfè <nunzio.marfe@protonmail.com> Co-authored-by: Wesley Reid <starhound@lostsouls.org> Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com> Co-authored-by: Denis <38875137+Medvedinca@users.noreply.github.com> Co-authored-by: Peet McKinney <68706879+PeetMcK@users.noreply.github.com>
768 lines
18 KiB
TypeScript
768 lines
18 KiB
TypeScript
export interface TerminalTheme {
|
|
name: string;
|
|
category: "dark" | "light" | "colorful";
|
|
colors: {
|
|
background: string;
|
|
foreground: string;
|
|
cursor?: string;
|
|
cursorAccent?: string;
|
|
selectionBackground?: string;
|
|
selectionForeground?: string;
|
|
black: string;
|
|
red: string;
|
|
green: string;
|
|
yellow: string;
|
|
blue: string;
|
|
magenta: string;
|
|
cyan: string;
|
|
white: string;
|
|
brightBlack: string;
|
|
brightRed: string;
|
|
brightGreen: string;
|
|
brightYellow: string;
|
|
brightBlue: string;
|
|
brightMagenta: string;
|
|
brightCyan: string;
|
|
brightWhite: string;
|
|
};
|
|
}
|
|
|
|
export const TERMINAL_THEMES: Record<string, TerminalTheme> = {
|
|
termix: {
|
|
name: "Termix Default",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#18181b",
|
|
foreground: "#f7f7f7",
|
|
cursor: "#f7f7f7",
|
|
cursorAccent: "#18181b",
|
|
selectionBackground: "#3a3a3d",
|
|
black: "#2e3436",
|
|
red: "#cc0000",
|
|
green: "#4e9a06",
|
|
yellow: "#c4a000",
|
|
blue: "#3465a4",
|
|
magenta: "#75507b",
|
|
cyan: "#06989a",
|
|
white: "#d3d7cf",
|
|
brightBlack: "#555753",
|
|
brightRed: "#ef2929",
|
|
brightGreen: "#8ae234",
|
|
brightYellow: "#fce94f",
|
|
brightBlue: "#729fcf",
|
|
brightMagenta: "#ad7fa8",
|
|
brightCyan: "#34e2e2",
|
|
brightWhite: "#eeeeec",
|
|
},
|
|
},
|
|
|
|
termixDark: {
|
|
name: "Termix Dark",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#18181b",
|
|
foreground: "#f7f7f7",
|
|
cursor: "#f7f7f7",
|
|
cursorAccent: "#18181b",
|
|
selectionBackground: "#3a3a3d",
|
|
black: "#2e3436",
|
|
red: "#cc0000",
|
|
green: "#4e9a06",
|
|
yellow: "#c4a000",
|
|
blue: "#3465a4",
|
|
magenta: "#75507b",
|
|
cyan: "#06989a",
|
|
white: "#d3d7cf",
|
|
brightBlack: "#555753",
|
|
brightRed: "#ef2929",
|
|
brightGreen: "#8ae234",
|
|
brightYellow: "#fce94f",
|
|
brightBlue: "#729fcf",
|
|
brightMagenta: "#ad7fa8",
|
|
brightCyan: "#34e2e2",
|
|
brightWhite: "#eeeeec",
|
|
},
|
|
},
|
|
|
|
termixLight: {
|
|
name: "Termix Light",
|
|
category: "light",
|
|
colors: {
|
|
background: "#ffffff",
|
|
foreground: "#18181b",
|
|
cursor: "#18181b",
|
|
cursorAccent: "#ffffff",
|
|
selectionBackground: "#d1d5db",
|
|
black: "#18181b",
|
|
red: "#dc2626",
|
|
green: "#16a34a",
|
|
yellow: "#ca8a04",
|
|
blue: "#2563eb",
|
|
magenta: "#9333ea",
|
|
cyan: "#0891b2",
|
|
white: "#f4f4f5",
|
|
brightBlack: "#71717a",
|
|
brightRed: "#ef4444",
|
|
brightGreen: "#22c55e",
|
|
brightYellow: "#eab308",
|
|
brightBlue: "#3b82f6",
|
|
brightMagenta: "#a855f7",
|
|
brightCyan: "#06b6d4",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
dracula: {
|
|
name: "Dracula",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#282a36",
|
|
foreground: "#f8f8f2",
|
|
cursor: "#f8f8f2",
|
|
cursorAccent: "#282a36",
|
|
selectionBackground: "#44475a",
|
|
black: "#21222c",
|
|
red: "#ff5555",
|
|
green: "#50fa7b",
|
|
yellow: "#f1fa8c",
|
|
blue: "#bd93f9",
|
|
magenta: "#ff79c6",
|
|
cyan: "#8be9fd",
|
|
white: "#f8f8f2",
|
|
brightBlack: "#6272a4",
|
|
brightRed: "#ff6e6e",
|
|
brightGreen: "#69ff94",
|
|
brightYellow: "#ffffa5",
|
|
brightBlue: "#d6acff",
|
|
brightMagenta: "#ff92df",
|
|
brightCyan: "#a4ffff",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
monokai: {
|
|
name: "Monokai",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#272822",
|
|
foreground: "#f8f8f2",
|
|
cursor: "#f8f8f0",
|
|
cursorAccent: "#272822",
|
|
selectionBackground: "#49483e",
|
|
black: "#272822",
|
|
red: "#f92672",
|
|
green: "#a6e22e",
|
|
yellow: "#f4bf75",
|
|
blue: "#66d9ef",
|
|
magenta: "#ae81ff",
|
|
cyan: "#a1efe4",
|
|
white: "#f8f8f2",
|
|
brightBlack: "#75715e",
|
|
brightRed: "#f92672",
|
|
brightGreen: "#a6e22e",
|
|
brightYellow: "#f4bf75",
|
|
brightBlue: "#66d9ef",
|
|
brightMagenta: "#ae81ff",
|
|
brightCyan: "#a1efe4",
|
|
brightWhite: "#f9f8f5",
|
|
},
|
|
},
|
|
|
|
nord: {
|
|
name: "Nord",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#2e3440",
|
|
foreground: "#d8dee9",
|
|
cursor: "#d8dee9",
|
|
cursorAccent: "#2e3440",
|
|
selectionBackground: "#434c5e",
|
|
black: "#3b4252",
|
|
red: "#bf616a",
|
|
green: "#a3be8c",
|
|
yellow: "#ebcb8b",
|
|
blue: "#81a1c1",
|
|
magenta: "#b48ead",
|
|
cyan: "#88c0d0",
|
|
white: "#e5e9f0",
|
|
brightBlack: "#4c566a",
|
|
brightRed: "#bf616a",
|
|
brightGreen: "#a3be8c",
|
|
brightYellow: "#ebcb8b",
|
|
brightBlue: "#81a1c1",
|
|
brightMagenta: "#b48ead",
|
|
brightCyan: "#8fbcbb",
|
|
brightWhite: "#eceff4",
|
|
},
|
|
},
|
|
|
|
gruvboxDark: {
|
|
name: "Gruvbox Dark",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#282828",
|
|
foreground: "#ebdbb2",
|
|
cursor: "#ebdbb2",
|
|
cursorAccent: "#282828",
|
|
selectionBackground: "#504945",
|
|
black: "#282828",
|
|
red: "#cc241d",
|
|
green: "#98971a",
|
|
yellow: "#d79921",
|
|
blue: "#458588",
|
|
magenta: "#b16286",
|
|
cyan: "#689d6a",
|
|
white: "#a89984",
|
|
brightBlack: "#928374",
|
|
brightRed: "#fb4934",
|
|
brightGreen: "#b8bb26",
|
|
brightYellow: "#fabd2f",
|
|
brightBlue: "#83a598",
|
|
brightMagenta: "#d3869b",
|
|
brightCyan: "#8ec07c",
|
|
brightWhite: "#ebdbb2",
|
|
},
|
|
},
|
|
|
|
gruvboxLight: {
|
|
name: "Gruvbox Light",
|
|
category: "light",
|
|
colors: {
|
|
background: "#fbf1c7",
|
|
foreground: "#3c3836",
|
|
cursor: "#3c3836",
|
|
cursorAccent: "#fbf1c7",
|
|
selectionBackground: "#d5c4a1",
|
|
black: "#fbf1c7",
|
|
red: "#cc241d",
|
|
green: "#98971a",
|
|
yellow: "#d79921",
|
|
blue: "#458588",
|
|
magenta: "#b16286",
|
|
cyan: "#689d6a",
|
|
white: "#7c6f64",
|
|
brightBlack: "#928374",
|
|
brightRed: "#9d0006",
|
|
brightGreen: "#79740e",
|
|
brightYellow: "#b57614",
|
|
brightBlue: "#076678",
|
|
brightMagenta: "#8f3f71",
|
|
brightCyan: "#427b58",
|
|
brightWhite: "#3c3836",
|
|
},
|
|
},
|
|
|
|
solarizedDark: {
|
|
name: "Solarized Dark",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#002b36",
|
|
foreground: "#839496",
|
|
cursor: "#839496",
|
|
cursorAccent: "#002b36",
|
|
selectionBackground: "#073642",
|
|
black: "#073642",
|
|
red: "#dc322f",
|
|
green: "#859900",
|
|
yellow: "#b58900",
|
|
blue: "#268bd2",
|
|
magenta: "#d33682",
|
|
cyan: "#2aa198",
|
|
white: "#eee8d5",
|
|
brightBlack: "#002b36",
|
|
brightRed: "#cb4b16",
|
|
brightGreen: "#586e75",
|
|
brightYellow: "#657b83",
|
|
brightBlue: "#839496",
|
|
brightMagenta: "#6c71c4",
|
|
brightCyan: "#93a1a1",
|
|
brightWhite: "#fdf6e3",
|
|
},
|
|
},
|
|
|
|
solarizedLight: {
|
|
name: "Solarized Light",
|
|
category: "light",
|
|
colors: {
|
|
background: "#fdf6e3",
|
|
foreground: "#657b83",
|
|
cursor: "#657b83",
|
|
cursorAccent: "#fdf6e3",
|
|
selectionBackground: "#eee8d5",
|
|
black: "#073642",
|
|
red: "#dc322f",
|
|
green: "#859900",
|
|
yellow: "#b58900",
|
|
blue: "#268bd2",
|
|
magenta: "#d33682",
|
|
cyan: "#2aa198",
|
|
white: "#eee8d5",
|
|
brightBlack: "#002b36",
|
|
brightRed: "#cb4b16",
|
|
brightGreen: "#586e75",
|
|
brightYellow: "#657b83",
|
|
brightBlue: "#839496",
|
|
brightMagenta: "#6c71c4",
|
|
brightCyan: "#93a1a1",
|
|
brightWhite: "#fdf6e3",
|
|
},
|
|
},
|
|
|
|
oneDark: {
|
|
name: "One Dark",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#282c34",
|
|
foreground: "#abb2bf",
|
|
cursor: "#528bff",
|
|
cursorAccent: "#282c34",
|
|
selectionBackground: "#3e4451",
|
|
black: "#282c34",
|
|
red: "#e06c75",
|
|
green: "#98c379",
|
|
yellow: "#e5c07b",
|
|
blue: "#61afef",
|
|
magenta: "#c678dd",
|
|
cyan: "#56b6c2",
|
|
white: "#abb2bf",
|
|
brightBlack: "#5c6370",
|
|
brightRed: "#e06c75",
|
|
brightGreen: "#98c379",
|
|
brightYellow: "#e5c07b",
|
|
brightBlue: "#61afef",
|
|
brightMagenta: "#c678dd",
|
|
brightCyan: "#56b6c2",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
tokyoNight: {
|
|
name: "Tokyo Night",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#1a1b26",
|
|
foreground: "#a9b1d6",
|
|
cursor: "#a9b1d6",
|
|
cursorAccent: "#1a1b26",
|
|
selectionBackground: "#283457",
|
|
black: "#15161e",
|
|
red: "#f7768e",
|
|
green: "#9ece6a",
|
|
yellow: "#e0af68",
|
|
blue: "#7aa2f7",
|
|
magenta: "#bb9af7",
|
|
cyan: "#7dcfff",
|
|
white: "#a9b1d6",
|
|
brightBlack: "#414868",
|
|
brightRed: "#f7768e",
|
|
brightGreen: "#9ece6a",
|
|
brightYellow: "#e0af68",
|
|
brightBlue: "#7aa2f7",
|
|
brightMagenta: "#bb9af7",
|
|
brightCyan: "#7dcfff",
|
|
brightWhite: "#c0caf5",
|
|
},
|
|
},
|
|
|
|
ayuDark: {
|
|
name: "Ayu Dark",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#0a0e14",
|
|
foreground: "#b3b1ad",
|
|
cursor: "#e6b450",
|
|
cursorAccent: "#0a0e14",
|
|
selectionBackground: "#253340",
|
|
black: "#01060e",
|
|
red: "#ea6c73",
|
|
green: "#91b362",
|
|
yellow: "#f9af4f",
|
|
blue: "#53bdfa",
|
|
magenta: "#fae994",
|
|
cyan: "#90e1c6",
|
|
white: "#c7c7c7",
|
|
brightBlack: "#686868",
|
|
brightRed: "#f07178",
|
|
brightGreen: "#c2d94c",
|
|
brightYellow: "#ffb454",
|
|
brightBlue: "#59c2ff",
|
|
brightMagenta: "#ffee99",
|
|
brightCyan: "#95e6cb",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
ayuLight: {
|
|
name: "Ayu Light",
|
|
category: "light",
|
|
colors: {
|
|
background: "#fafafa",
|
|
foreground: "#5c6166",
|
|
cursor: "#ff9940",
|
|
cursorAccent: "#fafafa",
|
|
selectionBackground: "#d1e4f4",
|
|
black: "#000000",
|
|
red: "#f51818",
|
|
green: "#86b300",
|
|
yellow: "#f2ae49",
|
|
blue: "#399ee6",
|
|
magenta: "#a37acc",
|
|
cyan: "#4cbf99",
|
|
white: "#c7c7c7",
|
|
brightBlack: "#686868",
|
|
brightRed: "#ff3333",
|
|
brightGreen: "#b8e532",
|
|
brightYellow: "#ffc849",
|
|
brightBlue: "#59c2ff",
|
|
brightMagenta: "#bf7ce0",
|
|
brightCyan: "#5cf7a0",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
materialTheme: {
|
|
name: "Material Theme",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#263238",
|
|
foreground: "#eeffff",
|
|
cursor: "#ffcc00",
|
|
cursorAccent: "#263238",
|
|
selectionBackground: "#546e7a",
|
|
black: "#000000",
|
|
red: "#e53935",
|
|
green: "#91b859",
|
|
yellow: "#ffb62c",
|
|
blue: "#6182b8",
|
|
magenta: "#7c4dff",
|
|
cyan: "#39adb5",
|
|
white: "#ffffff",
|
|
brightBlack: "#546e7a",
|
|
brightRed: "#ff5370",
|
|
brightGreen: "#c3e88d",
|
|
brightYellow: "#ffcb6b",
|
|
brightBlue: "#82aaff",
|
|
brightMagenta: "#c792ea",
|
|
brightCyan: "#89ddff",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
palenight: {
|
|
name: "Palenight",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#292d3e",
|
|
foreground: "#a6accd",
|
|
cursor: "#ffcc00",
|
|
cursorAccent: "#292d3e",
|
|
selectionBackground: "#676e95",
|
|
black: "#292d3e",
|
|
red: "#f07178",
|
|
green: "#c3e88d",
|
|
yellow: "#ffcb6b",
|
|
blue: "#82aaff",
|
|
magenta: "#c792ea",
|
|
cyan: "#89ddff",
|
|
white: "#d0d0d0",
|
|
brightBlack: "#434758",
|
|
brightRed: "#ff8b92",
|
|
brightGreen: "#ddffa7",
|
|
brightYellow: "#ffe585",
|
|
brightBlue: "#9cc4ff",
|
|
brightMagenta: "#e1acff",
|
|
brightCyan: "#a3f7ff",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
oceanicNext: {
|
|
name: "Oceanic Next",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#1b2b34",
|
|
foreground: "#cdd3de",
|
|
cursor: "#c0c5ce",
|
|
cursorAccent: "#1b2b34",
|
|
selectionBackground: "#343d46",
|
|
black: "#343d46",
|
|
red: "#ec5f67",
|
|
green: "#99c794",
|
|
yellow: "#fac863",
|
|
blue: "#6699cc",
|
|
magenta: "#c594c5",
|
|
cyan: "#5fb3b3",
|
|
white: "#cdd3de",
|
|
brightBlack: "#65737e",
|
|
brightRed: "#ec5f67",
|
|
brightGreen: "#99c794",
|
|
brightYellow: "#fac863",
|
|
brightBlue: "#6699cc",
|
|
brightMagenta: "#c594c5",
|
|
brightCyan: "#5fb3b3",
|
|
brightWhite: "#d8dee9",
|
|
},
|
|
},
|
|
|
|
nightOwl: {
|
|
name: "Night Owl",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#011627",
|
|
foreground: "#d6deeb",
|
|
cursor: "#80a4c2",
|
|
cursorAccent: "#011627",
|
|
selectionBackground: "#1d3b53",
|
|
black: "#011627",
|
|
red: "#ef5350",
|
|
green: "#22da6e",
|
|
yellow: "#c5e478",
|
|
blue: "#82aaff",
|
|
magenta: "#c792ea",
|
|
cyan: "#21c7a8",
|
|
white: "#ffffff",
|
|
brightBlack: "#575656",
|
|
brightRed: "#ef5350",
|
|
brightGreen: "#22da6e",
|
|
brightYellow: "#ffeb95",
|
|
brightBlue: "#82aaff",
|
|
brightMagenta: "#c792ea",
|
|
brightCyan: "#7fdbca",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
synthwave84: {
|
|
name: "Synthwave '84",
|
|
category: "colorful",
|
|
colors: {
|
|
background: "#241b2f",
|
|
foreground: "#f92aad",
|
|
cursor: "#f92aad",
|
|
cursorAccent: "#241b2f",
|
|
selectionBackground: "#495495",
|
|
black: "#000000",
|
|
red: "#f6188f",
|
|
green: "#1eff8e",
|
|
yellow: "#ffe261",
|
|
blue: "#03edf9",
|
|
magenta: "#f10596",
|
|
cyan: "#03edf9",
|
|
white: "#ffffff",
|
|
brightBlack: "#5a5a5a",
|
|
brightRed: "#ff1a8e",
|
|
brightGreen: "#1eff8e",
|
|
brightYellow: "#ffff00",
|
|
brightBlue: "#00d8ff",
|
|
brightMagenta: "#ff00d4",
|
|
brightCyan: "#00ffff",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
cobalt2: {
|
|
name: "Cobalt2",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#193549",
|
|
foreground: "#ffffff",
|
|
cursor: "#f0cc09",
|
|
cursorAccent: "#193549",
|
|
selectionBackground: "#0050a4",
|
|
black: "#000000",
|
|
red: "#ff0000",
|
|
green: "#38de21",
|
|
yellow: "#ffe50a",
|
|
blue: "#1460d2",
|
|
magenta: "#ff005d",
|
|
cyan: "#00bbbb",
|
|
white: "#bbbbbb",
|
|
brightBlack: "#555555",
|
|
brightRed: "#f40e17",
|
|
brightGreen: "#3bd01d",
|
|
brightYellow: "#edc809",
|
|
brightBlue: "#5555ff",
|
|
brightMagenta: "#ff55ff",
|
|
brightCyan: "#6ae3fa",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
snazzy: {
|
|
name: "Snazzy",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#282a36",
|
|
foreground: "#eff0eb",
|
|
cursor: "#97979b",
|
|
cursorAccent: "#282a36",
|
|
selectionBackground: "#97979b",
|
|
black: "#282a36",
|
|
red: "#ff5c57",
|
|
green: "#5af78e",
|
|
yellow: "#f3f99d",
|
|
blue: "#57c7ff",
|
|
magenta: "#ff6ac1",
|
|
cyan: "#9aedfe",
|
|
white: "#f1f1f0",
|
|
brightBlack: "#686868",
|
|
brightRed: "#ff5c57",
|
|
brightGreen: "#5af78e",
|
|
brightYellow: "#f3f99d",
|
|
brightBlue: "#57c7ff",
|
|
brightMagenta: "#ff6ac1",
|
|
brightCyan: "#9aedfe",
|
|
brightWhite: "#eff0eb",
|
|
},
|
|
},
|
|
|
|
atomOneDark: {
|
|
name: "Atom One Dark",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#1e2127",
|
|
foreground: "#abb2bf",
|
|
cursor: "#528bff",
|
|
cursorAccent: "#1e2127",
|
|
selectionBackground: "#3e4451",
|
|
black: "#000000",
|
|
red: "#e06c75",
|
|
green: "#98c379",
|
|
yellow: "#d19a66",
|
|
blue: "#61afef",
|
|
magenta: "#c678dd",
|
|
cyan: "#56b6c2",
|
|
white: "#abb2bf",
|
|
brightBlack: "#5c6370",
|
|
brightRed: "#e06c75",
|
|
brightGreen: "#98c379",
|
|
brightYellow: "#d19a66",
|
|
brightBlue: "#61afef",
|
|
brightMagenta: "#c678dd",
|
|
brightCyan: "#56b6c2",
|
|
brightWhite: "#ffffff",
|
|
},
|
|
},
|
|
|
|
catppuccinMocha: {
|
|
name: "Catppuccin Mocha",
|
|
category: "dark",
|
|
colors: {
|
|
background: "#1e1e2e",
|
|
foreground: "#cdd6f4",
|
|
cursor: "#f5e0dc",
|
|
cursorAccent: "#1e1e2e",
|
|
selectionBackground: "#585b70",
|
|
black: "#45475a",
|
|
red: "#f38ba8",
|
|
green: "#a6e3a1",
|
|
yellow: "#f9e2af",
|
|
blue: "#89b4fa",
|
|
magenta: "#f5c2e7",
|
|
cyan: "#94e2d5",
|
|
white: "#bac2de",
|
|
brightBlack: "#585b70",
|
|
brightRed: "#f38ba8",
|
|
brightGreen: "#a6e3a1",
|
|
brightYellow: "#f9e2af",
|
|
brightBlue: "#89b4fa",
|
|
brightMagenta: "#f5c2e7",
|
|
brightCyan: "#94e2d5",
|
|
brightWhite: "#a6adc8",
|
|
},
|
|
},
|
|
};
|
|
|
|
export const TERMINAL_FONTS = [
|
|
{
|
|
value: "Caskaydia Cove Nerd Font Mono",
|
|
label: "Caskaydia Cove Nerd Font Mono",
|
|
fallback:
|
|
'"Caskaydia Cove Nerd Font Mono", "SF Mono", Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "JetBrains Mono",
|
|
label: "JetBrains Mono",
|
|
fallback:
|
|
'"JetBrains Mono", "SF Mono", Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "Fira Code",
|
|
label: "Fira Code",
|
|
fallback: '"Fira Code", "SF Mono", Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "Cascadia Code",
|
|
label: "Cascadia Code",
|
|
fallback:
|
|
'"Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "Source Code Pro",
|
|
label: "Source Code Pro",
|
|
fallback:
|
|
'"Source Code Pro", "SF Mono", Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "SF Mono",
|
|
label: "SF Mono",
|
|
fallback: '"SF Mono", Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "Consolas",
|
|
label: "Consolas",
|
|
fallback: 'Consolas, "Liberation Mono", monospace',
|
|
},
|
|
{
|
|
value: "Monaco",
|
|
label: "Monaco",
|
|
fallback: 'Monaco, "Liberation Mono", monospace',
|
|
},
|
|
];
|
|
|
|
export const CURSOR_STYLES = [
|
|
{ value: "block", label: "Block" },
|
|
{ value: "underline", label: "Underline" },
|
|
{ value: "bar", label: "Bar" },
|
|
] as const;
|
|
|
|
export const BELL_STYLES = [
|
|
{ value: "none", label: "None" },
|
|
{ value: "sound", label: "Sound" },
|
|
{ value: "visual", label: "Visual" },
|
|
{ value: "both", label: "Both" },
|
|
] as const;
|
|
|
|
export const FAST_SCROLL_MODIFIERS = [
|
|
{ value: "alt", label: "Alt" },
|
|
{ value: "ctrl", label: "Ctrl" },
|
|
{ value: "shift", label: "Shift" },
|
|
] as const;
|
|
|
|
export const DEFAULT_TERMINAL_CONFIG = {
|
|
cursorBlink: true,
|
|
cursorStyle: "bar" as const,
|
|
fontSize: 14,
|
|
fontFamily: "Caskaydia Cove Nerd Font Mono",
|
|
letterSpacing: 0,
|
|
lineHeight: 1.2,
|
|
theme: "termix",
|
|
|
|
scrollback: 10000,
|
|
bellStyle: "none" as const,
|
|
rightClickSelectsWord: false,
|
|
fastScrollModifier: "alt" as const,
|
|
fastScrollSensitivity: 5,
|
|
minimumContrastRatio: 1,
|
|
|
|
backspaceMode: "normal" as const,
|
|
agentForwarding: false,
|
|
environmentVariables: [] as Array<{ key: string; value: string }>,
|
|
startupSnippetId: null as number | null,
|
|
autoMosh: false,
|
|
moshCommand: "mosh-server new -s -l LANG=en_US.UTF-8",
|
|
sudoPasswordAutoFill: false,
|
|
};
|
|
|
|
export type TerminalConfigType = typeof DEFAULT_TERMINAL_CONFIG;
|