witty/assets/main.js

52 lines
1.3 KiB
JavaScript
Raw Normal View History

2022-01-04 21:41:41 +01:00
function createTerminal() {
2022-01-05 03:21:21 +01:00
// vscode-snazzy https://github.com/Tyriar/vscode-snazzy
// copied from xterm.js website
var baseTheme = {
foreground: '#eff0eb',
background: '#282a36',
selection: '#97979b33',
black: '#282a36',
brightBlack: '#686868',
red: '#ff5c57',
brightRed: '#ff5c57',
green: '#5af78e',
brightGreen: '#5af78e',
yellow: '#f3f99d',
brightYellow: '#f3f99d',
blue: '#57c7ff',
brightBlue: '#57c7ff',
magenta: '#ff6ac1',
brightMagenta: '#ff6ac1',
cyan: '#9aedfe',
brightCyan: '#9aedfe',
white: '#f1f1f0',
brightWhite: '#eff0eb'
};
2022-01-04 21:41:41 +01:00
const term = new Terminal({
2022-01-05 03:21:21 +01:00
fontFamily: `'Fira Code', monospace`,
fontSize: 12,
theme: baseTheme,
convertEol: true,
cursorBlink: true,
2022-01-04 21:41:41 +01:00
});
term.open(document.getElementById('terminal_view'));
2022-01-05 18:38:52 +01:00
term.resize(122, 37);
2022-01-04 21:41:41 +01:00
const weblinksAddon = new WebLinksAddon.WebLinksAddon();
2022-01-05 03:21:21 +01:00
term.loadAddon(weblinksAddon);
2022-01-04 21:41:41 +01:00
// fit the xterm viewpoint to parent element
const fitAddon = new FitAddon.FitAddon();
term.loadAddon(fitAddon);
fitAddon.fit();
2022-01-05 03:21:21 +01:00
2022-01-04 21:41:41 +01:00
// create the websocket and connect to the server
2022-01-05 03:21:21 +01:00
const ws_uri = "ws://" + window.location.host + "/ws";
const socket = new WebSocket(ws_uri);
const attachAddon = new AttachAddon.AttachAddon(socket);
2022-01-04 21:41:41 +01:00
term.loadAddon(attachAddon);
return term;
2022-01-05 03:21:21 +01:00
}