diff --git a/extensions/git/src/askpass.ts b/extensions/git/src/askpass.ts index e241ced459a..597cc043d4e 100644 --- a/extensions/git/src/askpass.ts +++ b/extensions/git/src/askpass.ts @@ -27,6 +27,10 @@ function getIPCHandlePath(nonce: string): string { return `\\\\.\\pipe\\vscode-git-askpass-${nonce}-sock`; } + if (process.env['XDG_RUNTIME_DIR']) { + return path.join(process.env['XDG_RUNTIME_DIR'], `vscode-git-askpass-${nonce}.sock`); + } + return path.join(os.tmpdir(), `vscode-git-askpass-${nonce}.sock`); } diff --git a/src/vs/code/node/shellEnv.ts b/src/vs/code/node/shellEnv.ts index 92c146fefae..e64c64e6400 100644 --- a/src/vs/code/node/shellEnv.ts +++ b/src/vs/code/node/shellEnv.ts @@ -58,6 +58,9 @@ function getUnixShellEnvironment(): TPromise { delete env['ELECTRON_NO_ATTACH_CONSOLE']; } + // https://github.com/Microsoft/vscode/issues/22593#issuecomment-336050758 + delete env['XDG_RUNTIME_DIR']; + c(env); } catch (err) { e(err); diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index fabbad3371e..1ba798a6fc0 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -15,7 +15,15 @@ import { memoize } from 'vs/base/common/decorators'; import pkg from 'vs/platform/node/package'; import product from 'vs/platform/node/product'; +// Read this before there's any chance it is overwritten +// Related to https://github.com/Microsoft/vscode/issues/30624 +const xdgRuntimeDir = process.env['XDG_RUNTIME_DIR']; + function getNixIPCHandle(userDataPath: string, type: string): string { + if (xdgRuntimeDir) { + return path.join(xdgRuntimeDir, `${pkg.name}-${pkg.version}-${type}.sock`); + } + return path.join(userDataPath, `${pkg.version}-${type}.sock`); }