From b640abd85d90276631a9eea116b1ffe6a7171c78 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Mon, 10 Jul 2017 18:26:46 +0200 Subject: [PATCH] set proper $TERM on Windows (fixes #91, fixes #28) --- terminus-terminal/src/buttonProvider.ts | 17 +++++++++++++---- .../src/services/sessions.service.ts | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/terminus-terminal/src/buttonProvider.ts b/terminus-terminal/src/buttonProvider.ts index d542bdd3..ae81f1c8 100644 --- a/terminus-terminal/src/buttonProvider.ts +++ b/terminus-terminal/src/buttonProvider.ts @@ -1,7 +1,7 @@ import * as fs from 'mz/fs' import * as path from 'path' import { Injectable } from '@angular/core' -import { HotkeysService, ToolbarButtonProvider, IToolbarButton, AppService, ConfigService, HostAppService, ElectronService } from 'terminus-core' +import { HotkeysService, ToolbarButtonProvider, IToolbarButton, AppService, ConfigService, HostAppService, Platform, ElectronService } from 'terminus-core' import { SessionsService } from './services/sessions.service' import { ShellsService } from './services/shells.service' @@ -14,8 +14,8 @@ export class ButtonProvider extends ToolbarButtonProvider { private sessions: SessionsService, private config: ConfigService, private shells: ShellsService, + private hostApp: HostAppService, electron: ElectronService, - hostApp: HostAppService, hotkeys: HotkeysService, ) { super() @@ -51,14 +51,23 @@ export class ButtonProvider extends ToolbarButtonProvider { cwd = await this.app.activeTab.session.getWorkingDirectory() } let command = this.config.store.terminal.shell - let args = [] + let env: any = {} + let args: string[] = [] if (command === '~clink~') { ({ command, args } = this.shells.getClinkOptions()) } if (command === '~default-shell~') { command = await this.shells.getDefaultShell() } - let sessionOptions = await this.sessions.prepareNewSession({ command, args, cwd }) + if (this.hostApp.platform === Platform.Windows) { + env.TERM = 'cygwin' + } + let sessionOptions = await this.sessions.prepareNewSession({ + command, + args, + cwd, + env, + }) this.app.openNewTab( TerminalTabComponent, { sessionOptions } diff --git a/terminus-terminal/src/services/sessions.service.ts b/terminus-terminal/src/services/sessions.service.ts index 7963c9dc..79231a00 100644 --- a/terminus-terminal/src/services/sessions.service.ts +++ b/terminus-terminal/src/services/sessions.service.ts @@ -25,8 +25,8 @@ export class Session { let env = { ...process.env, - ...options.env, TERM: 'xterm-256color', + ...options.env, } if (process.platform === 'darwin' && !process.env.LC_ALL) {