mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-22 20:40:08 +00:00
Merge pull request #6465 from attet/panenav
This commit is contained in:
commit
a96a9ea5e5
@ -311,6 +311,33 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
|||||||
case 'pane-nav-next':
|
case 'pane-nav-next':
|
||||||
this.navigateLinear(1)
|
this.navigateLinear(1)
|
||||||
break
|
break
|
||||||
|
case 'pane-nav-1':
|
||||||
|
this.navigateSpecific(0)
|
||||||
|
break
|
||||||
|
case 'pane-nav-2':
|
||||||
|
this.navigateSpecific(1)
|
||||||
|
break
|
||||||
|
case 'pane-nav-3':
|
||||||
|
this.navigateSpecific(2)
|
||||||
|
break
|
||||||
|
case 'pane-nav-4':
|
||||||
|
this.navigateSpecific(3)
|
||||||
|
break
|
||||||
|
case 'pane-nav-5':
|
||||||
|
this.navigateSpecific(4)
|
||||||
|
break
|
||||||
|
case 'pane-nav-6':
|
||||||
|
this.navigateSpecific(5)
|
||||||
|
break
|
||||||
|
case 'pane-nav-7':
|
||||||
|
this.navigateSpecific(6)
|
||||||
|
break
|
||||||
|
case 'pane-nav-8':
|
||||||
|
this.navigateSpecific(7)
|
||||||
|
break
|
||||||
|
case 'pane-nav-9':
|
||||||
|
this.navigateSpecific(8)
|
||||||
|
break
|
||||||
case 'pane-maximize':
|
case 'pane-maximize':
|
||||||
if (this.maximizedTab) {
|
if (this.maximizedTab) {
|
||||||
this.maximize(null)
|
this.maximize(null)
|
||||||
@ -644,6 +671,15 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
|||||||
this.focus(target)
|
this.focus(target)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
navigateSpecific (target: number): void {
|
||||||
|
const all = this.getAllTabs()
|
||||||
|
if (target >= all.length) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this.focus(all[target])
|
||||||
|
}
|
||||||
|
|
||||||
async splitTab (tab: BaseTabComponent, dir: SplitDirection): Promise<BaseTabComponent|null> {
|
async splitTab (tab: BaseTabComponent, dir: SplitDirection): Promise<BaseTabComponent|null> {
|
||||||
const newTab = await this.tabsService.duplicate(tab)
|
const newTab = await this.tabsService.duplicate(tab)
|
||||||
if (newTab) {
|
if (newTab) {
|
||||||
@ -763,6 +799,9 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
|||||||
const ref = tab.insertIntoContainer(this.viewContainer)
|
const ref = tab.insertIntoContainer(this.viewContainer)
|
||||||
this.viewRefs.set(tab, ref)
|
this.viewRefs.set(tab, ref)
|
||||||
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'click', () => this.focus(tab))
|
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'click', () => this.focus(tab))
|
||||||
|
if (this.config.store.terminal.focusFollowsMouse) {
|
||||||
|
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'mousemove', () => this.focus(tab))
|
||||||
|
}
|
||||||
|
|
||||||
tab.subscribeUntilDestroyed(tab.titleChange$, () => this.updateTitle())
|
tab.subscribeUntilDestroyed(tab.titleChange$, () => this.updateTitle())
|
||||||
tab.subscribeUntilDestroyed(tab.activity$, a => a ? this.displayActivity() : this.clearActivity())
|
tab.subscribeUntilDestroyed(tab.activity$, a => a ? this.displayActivity() : this.clearActivity())
|
||||||
|
@ -73,6 +73,15 @@ hotkeys:
|
|||||||
- 'Ctrl-Alt-['
|
- 'Ctrl-Alt-['
|
||||||
pane-nav-next:
|
pane-nav-next:
|
||||||
- 'Ctrl-Alt-]'
|
- 'Ctrl-Alt-]'
|
||||||
|
pane-nav-1: []
|
||||||
|
pane-nav-2: []
|
||||||
|
pane-nav-3: []
|
||||||
|
pane-nav-4: []
|
||||||
|
pane-nav-5: []
|
||||||
|
pane-nav-6: []
|
||||||
|
pane-nav-7: []
|
||||||
|
pane-nav-8: []
|
||||||
|
pane-nav-9: []
|
||||||
pane-maximize:
|
pane-maximize:
|
||||||
- 'Ctrl-Alt-Enter'
|
- 'Ctrl-Alt-Enter'
|
||||||
pane-increase-vertical: []
|
pane-increase-vertical: []
|
||||||
|
@ -71,6 +71,15 @@ hotkeys:
|
|||||||
- '⌘-⌥-['
|
- '⌘-⌥-['
|
||||||
pane-nav-next:
|
pane-nav-next:
|
||||||
- '⌘-⌥-]'
|
- '⌘-⌥-]'
|
||||||
|
pane-nav-1: []
|
||||||
|
pane-nav-2: []
|
||||||
|
pane-nav-3: []
|
||||||
|
pane-nav-4: []
|
||||||
|
pane-nav-5: []
|
||||||
|
pane-nav-6: []
|
||||||
|
pane-nav-7: []
|
||||||
|
pane-nav-8: []
|
||||||
|
pane-nav-9: []
|
||||||
pane-maximize:
|
pane-maximize:
|
||||||
- '⌘-⌥-Enter'
|
- '⌘-⌥-Enter'
|
||||||
close-pane:
|
close-pane:
|
||||||
|
@ -74,6 +74,15 @@ hotkeys:
|
|||||||
- 'Ctrl-Alt-['
|
- 'Ctrl-Alt-['
|
||||||
pane-nav-next:
|
pane-nav-next:
|
||||||
- 'Ctrl-Alt-]'
|
- 'Ctrl-Alt-]'
|
||||||
|
pane-nav-1: []
|
||||||
|
pane-nav-2: []
|
||||||
|
pane-nav-3: []
|
||||||
|
pane-nav-4: []
|
||||||
|
pane-nav-5: []
|
||||||
|
pane-nav-6: []
|
||||||
|
pane-nav-7: []
|
||||||
|
pane-nav-8: []
|
||||||
|
pane-nav-9: []
|
||||||
pane-maximize:
|
pane-maximize:
|
||||||
- 'Ctrl-Alt-Enter'
|
- 'Ctrl-Alt-Enter'
|
||||||
close-pane: []
|
close-pane: []
|
||||||
|
@ -20,6 +20,7 @@ terminal:
|
|||||||
showBuiltinProfiles: true
|
showBuiltinProfiles: true
|
||||||
showRecentProfiles: 3
|
showRecentProfiles: 3
|
||||||
paneResizeStep: 0.1
|
paneResizeStep: 0.1
|
||||||
|
focusFollowsMouse: false
|
||||||
hotkeys:
|
hotkeys:
|
||||||
profile:
|
profile:
|
||||||
__nonStructural: true
|
__nonStructural: true
|
||||||
|
@ -188,6 +188,42 @@ export class AppHotkeyProvider extends HotkeyProvider {
|
|||||||
id: 'pane-nav-next',
|
id: 'pane-nav-next',
|
||||||
name: this.translate.instant('Focus next pane'),
|
name: this.translate.instant('Focus next pane'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-1',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 1 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-2',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 2 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-3',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 3 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-4',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 4 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-5',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 5 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-6',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 6 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-7',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 7 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-8',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 8 }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'pane-nav-9',
|
||||||
|
name: this.translate.instant('Focus pane {number}', { number: 9 }),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'switch-profile',
|
id: 'switch-profile',
|
||||||
name: this.translate.instant('Switch profile in the active pane'),
|
name: this.translate.instant('Switch profile in the active pane'),
|
||||||
|
@ -319,6 +319,15 @@ h3.mt-4(translate) Panes
|
|||||||
step='0.05'
|
step='0.05'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
.form-line()
|
||||||
|
.header
|
||||||
|
.title(translate) Focus follows mouse
|
||||||
|
.description(translate) Moving the mouse over an inactive pane will cause it to activate
|
||||||
|
toggle(
|
||||||
|
[(ngModel)]='config.store.terminal.focusFollowsMouse',
|
||||||
|
(ngModelChange)='config.save(); config.requestRestart()'
|
||||||
|
)
|
||||||
|
|
||||||
h3.mt-4(translate) Hacks
|
h3.mt-4(translate) Hacks
|
||||||
|
|
||||||
.form-line
|
.form-line
|
||||||
|
Loading…
x
Reference in New Issue
Block a user