diff --git a/terminus-terminal/src/persistenceProviders.ts b/terminus-terminal/src/persistenceProviders.ts index 55254ae4..141154ae 100644 --- a/terminus-terminal/src/persistenceProviders.ts +++ b/terminus-terminal/src/persistenceProviders.ts @@ -88,7 +88,7 @@ export class ScreenPersistenceProvider extends SessionPersistenceProvider { await fs.writeFile(configPath, ` escape ^^^ vbell on - deflogin off + deflogin on term xterm-color bindkey "^[OH" beginning-of-line bindkey "^[OF" end-of-line @@ -98,6 +98,8 @@ export class ScreenPersistenceProvider extends SessionPersistenceProvider { defhstatus "^Et" hardstatus off altscreen on + defutf8 on + defencoding utf8 `, 'utf-8') let recoveryId = `term-tab-${Date.now()}` let args = ['-d', '-m', '-c', configPath, '-U', '-S', recoveryId, '-T', 'xterm-256color', '--', '-' + options.command].concat(options.args || []) diff --git a/terminus-terminal/src/services/sessions.service.ts b/terminus-terminal/src/services/sessions.service.ts index 740061d8..81dcffe4 100644 --- a/terminus-terminal/src/services/sessions.service.ts +++ b/terminus-terminal/src/services/sessions.service.ts @@ -28,6 +28,18 @@ export class Session { ...options.env, TERM: 'xterm-256color', } + + if (process.platform === 'darwin' && !process.env.LC_ALL) { + let locale = process.env.LC_CTYPE || 'en_US.UTF-8' + Object.assign(env, { + LANG: locale, + LC_ALL: locale, + LC_MESSAGES: locale, + LC_NUMERIC: locale, + LC_COLLATE: locale, + LC_MONETARY: locale, + }) + } this.pty = nodePTY.spawn(options.command, options.args || [], { name: 'xterm-256color', cols: options.width || 80,