2020-08-16 18:24:47 +02:00

208 lines
6.0 KiB
TypeScript

import { ConfigProvider, Platform } from 'terminus-core'
/** @hidden */
export class TerminalConfigProvider extends ConfigProvider {
defaults = {
hotkeys: {
shell: {
__nonStructural: true,
},
profile: {
__nonStructural: true,
},
},
terminal: {
frontend: 'xterm',
autoOpen: false,
fontSize: 14,
fallbackFont: null,
linePadding: 0,
bell: 'off',
bracketedPaste: false,
background: 'theme',
ligatures: false,
cursor: 'block',
cursorBlink: true,
customShell: '',
rightClick: 'menu',
pasteOnMiddleClick: true,
copyOnSelect: false,
scrollOnInput: true,
workingDirectory: '',
alwaysUseWorkingDirectory: false,
altIsMeta: false,
wordSeparator: ' ()[]{}\'"',
colorScheme: {
__nonStructural: true,
name: 'Material',
foreground: '#eceff1',
background: 'rgba(38, 50, 56, 1)',
selection: null,
cursor: '#FFCC00',
colors: [
'#000000',
'#D62341',
'#9ECE58',
'#FAED70',
'#396FE2',
'#BB80B3',
'#2DDAFD',
'#d0d0d0',
'rgba(255, 255, 255, 0.2)',
'#FF5370',
'#C3E88D',
'#FFCB6B',
'#82AAFF',
'#C792EA',
'#89DDFF',
'#ffffff',
],
},
customColorSchemes: [],
environment: {},
profiles: [],
useConPTY: true,
recoverTabs: true,
warnOnMultilinePaste: true,
showDefaultProfiles: true,
},
}
platformDefaults = {
[Platform.macOS]: {
terminal: {
font: 'Menlo',
shell: 'default',
profile: 'user-default',
},
hotkeys: {
'ctrl-c': ['Ctrl-C'],
copy: [
'⌘-C',
],
paste: [
'⌘-V',
],
clear: [
'⌘-K',
],
'zoom-in': [
'⌘-=',
'⌘-Shift-=',
],
'zoom-out': [
'⌘--',
'⌘-Shift--',
],
'reset-zoom': [
'⌘-0',
],
'new-tab': [
'⌘-T',
],
home: ['⌘-Left', 'Home'],
end: ['⌘-Right', 'End'],
'previous-word': ['⌥-Left'],
'next-word': ['⌥-Right'],
'delete-previous-word': ['⌥-Backspace'],
'delete-next-word': ['⌥-Delete'],
search: [
'⌘-F',
],
'pane-focus-all': [
'⌘-Shift-I',
],
},
},
[Platform.Windows]: {
terminal: {
font: 'Consolas',
shell: 'clink',
profile: 'cmd-clink',
rightClick: 'paste',
pasteOnMiddleClick: false,
copyOnSelect: true,
},
hotkeys: {
'ctrl-c': ['Ctrl-C'],
copy: [
'Ctrl-Shift-C',
],
paste: [
'Ctrl-Shift-V',
],
clear: [],
'zoom-in': [
'Ctrl-=',
'Ctrl-Shift-=',
],
'zoom-out': [
'Ctrl--',
'Ctrl-Shift--',
],
'reset-zoom': [
'Ctrl-0',
],
'new-tab': [
'Ctrl-Shift-T',
],
home: ['Home'],
end: ['End'],
'previous-word': ['Ctrl-Left'],
'next-word': ['Ctrl-Right'],
'delete-previous-word': ['Ctrl-Backspace'],
'delete-next-word': ['Ctrl-Delete'],
search: [
'Ctrl-Shift-F',
],
'pane-focus-all': [
'Ctrl-Shift-I',
],
},
},
[Platform.Linux]: {
terminal: {
font: 'Liberation Mono',
shell: 'default',
profile: 'user-default',
},
hotkeys: {
'ctrl-c': ['Ctrl-C'],
copy: [
'Ctrl-Shift-C',
],
paste: [
'Ctrl-Shift-V',
],
clear: [],
'zoom-in': [
'Ctrl-=',
'Ctrl-Shift-=',
],
'zoom-out': [
'Ctrl--',
'Ctrl-Shift--',
],
'reset-zoom': [
'Ctrl-0',
],
'new-tab': [
'Ctrl-Shift-T',
],
home: ['Home'],
end: ['End'],
'previous-word': ['Ctrl-Left'],
'next-word': ['Ctrl-Right'],
'delete-previous-word': ['Ctrl-Backspace'],
'delete-next-word': ['Ctrl-Delete'],
search: [
'Ctrl-Shift-F',
],
'pane-focus-all': [
'Ctrl-Shift-I',
],
},
},
}
}