mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-21 20:09:53 +00:00
Merge pull request #1304 from ehwarren/feature/working-directory-in-new-terminals
Allow configuration of new tab CWD behaviour
This commit is contained in:
commit
4274ed563b
@ -55,6 +55,16 @@ h3.mb-3 Shell
|
||||
button.btn.btn-secondary((click)='pickWorkingDirectory()')
|
||||
i.fas.fa-folder-open
|
||||
|
||||
.form-line
|
||||
.header
|
||||
.title Always Use Working Directory
|
||||
.description By default, new terminals will open where the previous terminal was working. Enabling this option will always launch new terminals in the working directory specified above.
|
||||
|
||||
toggle(
|
||||
[(ngModel)]='config.store.terminal.alwaysUseWorkingDirectory',
|
||||
(ngModelChange)='config.save()'
|
||||
)
|
||||
|
||||
.form-line.align-items-start
|
||||
.header
|
||||
.title Environment
|
||||
|
@ -27,6 +27,7 @@ export class TerminalConfigProvider extends ConfigProvider {
|
||||
copyOnSelect: false,
|
||||
scrollOnInput: true,
|
||||
workingDirectory: '',
|
||||
alwaysUseWorkingDirectory: false,
|
||||
altIsMeta: false,
|
||||
colorScheme: {
|
||||
__nonStructural: true,
|
||||
|
@ -35,7 +35,9 @@ export class NewTabContextMenu extends TerminalContextMenuItemProvider {
|
||||
submenu: profiles.map(profile => ({
|
||||
label: profile.name,
|
||||
click: () => this.zone.run(async () => {
|
||||
this.terminalService.openTab(profile, await tab.session.getWorkingDirectory())
|
||||
const workingDirectory = this.config.store.terminal.alwaysUseWorkingDirectory === true ?
|
||||
this.config.store.terminal.workingDirectory : await tab.session.getWorkingDirectory()
|
||||
await this.terminalService.openTab(profile, workingDirectory)
|
||||
}),
|
||||
})),
|
||||
},
|
||||
|
@ -65,14 +65,16 @@ export class TerminalService {
|
||||
}
|
||||
|
||||
if (!cwd) {
|
||||
if (this.app.activeTab instanceof TerminalTabComponent && this.app.activeTab.session) {
|
||||
cwd = await this.app.activeTab.session.getWorkingDirectory()
|
||||
}
|
||||
if (this.app.activeTab instanceof SplitTabComponent) {
|
||||
const focusedTab = this.app.activeTab.getFocusedTab()
|
||||
if (!this.config.store.terminal.alwaysUseWorkingDirectory) {
|
||||
if (this.app.activeTab instanceof TerminalTabComponent && this.app.activeTab.session) {
|
||||
cwd = await this.app.activeTab.session.getWorkingDirectory()
|
||||
}
|
||||
if (this.app.activeTab instanceof SplitTabComponent) {
|
||||
const focusedTab = this.app.activeTab.getFocusedTab()
|
||||
|
||||
if (focusedTab instanceof TerminalTabComponent && focusedTab.session) {
|
||||
cwd = await focusedTab.session.getWorkingDirectory()
|
||||
if (focusedTab instanceof TerminalTabComponent && focusedTab.session) {
|
||||
cwd = await focusedTab.session.getWorkingDirectory()
|
||||
}
|
||||
}
|
||||
}
|
||||
cwd = cwd || this.config.store.terminal.workingDirectory
|
||||
|
Loading…
x
Reference in New Issue
Block a user