package com.jediterm.terminal.ui.settings;
import com.jediterm.terminal.TerminalColor;
import com.jediterm.terminal.TextStyle;
import com.jediterm.terminal.TtyConnector;
import com.jediterm.terminal.emulator.ColorPalette;
import com.jediterm.terminal.ui.UIUtil;
import javax.swing.*;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class DefaultSettingsProvider implements SettingsProvider {
@Override
public KeyStroke[] getNewSessionKeyStrokes() {
return new KeyStroke[]{UIUtil.isMac
? KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.META_DOWN_MASK)
: KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)};
}
@Override
public KeyStroke[] getCloseSessionKeyStrokes() {
return new KeyStroke[]{UIUtil.isMac
? KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.META_DOWN_MASK)
: KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)};
}
@Override
public KeyStroke[] getCopyKeyStrokes() {
return new KeyStroke[]{UIUtil.isMac
? KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.META_DOWN_MASK)
// CTRL + C is used for signal; use CTRL + SHIFT + C instead
: KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)};
}
@Override
public KeyStroke[] getPasteKeyStrokes() {
return new KeyStroke[]{UIUtil.isMac
? KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.META_DOWN_MASK)
// CTRL + V is used for signal; use CTRL + SHIFT + V instead
: KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)};
}
@Override
public ColorPalette getTerminalColorPalette() {
return UIUtil.isWindows ? ColorPalette.WINDOWS_PALETTE : ColorPalette.XTERM_PALETTE;
}
@Override
public Font getTerminalFont() {
String fontName;
if (UIUtil.isWindows) {
fontName = "Consolas";
} else if (UIUtil.isMac) {
fontName = "Menlo";
} else {
fontName = "Monospaced";
}
return Font.decode(fontName).deriveFont(getTerminalFontSize());
}
@Override
public float getTerminalFontSize() {
return 14;
}
@Override
public float getLineSpace() {
return 0;
}
@Override
public TextStyle getDefaultStyle() {
return new TextStyle(TerminalColor.BLACK, TerminalColor.WHITE);
// return new TextStyle(TerminalColor.WHITE, TerminalColor.rgb(24, 24, 24));
}
@Override
public TextStyle getSelectionColor() {
return new TextStyle(TerminalColor.WHITE, TerminalColor.rgb(82, 109, 165));
}
@Override
public boolean useInverseSelectionColor() {
return true;
}
@Override
public boolean copyOnSelect() {
return emulateX11CopyPaste();
}
@Override
public boolean pasteOnMiddleMouseClick() {
return emulateX11CopyPaste();
}
@Override
public boolean emulateX11CopyPaste() {
return true;
}
@Override
public boolean useAntialiasing() {
return true;
}
@Override
public boolean audibleBell() {
return true;
}
@Override
public boolean enableMouseReporting() {
return true;
}
@Override
public int caretBlinkingMs() {
return 505;
}
@Override
public boolean scrollToBottomOnTyping() {
return true;
}
@Override
public boolean DECCompatibilityMode() {
return true;
}
}