1
1
mirror of https://github.com/Eugeny/tabby.git synced 2024-12-23 18:44:20 +03:00

fixed bell

This commit is contained in:
Eugene Pankov 2021-05-13 17:30:48 +02:00
parent c9367d04c3
commit ee368a3716
No known key found for this signature in database
GPG Key ID: 5896FCBBDD1CF4F4
3 changed files with 32 additions and 3 deletions

View File

@ -118,4 +118,23 @@ ngb-typeahead-window {
&:hover { &:hover {
opacity: 1; opacity: 1;
} }
} }
@keyframes terminalShakeFrames {
0% {
transform: translateX(0);
}
25% {
transform: translateX(5px);
}
50% {
transform: translateX(-5px);
}
75% {
transform: translateX(5px);
}
100% {
transform: translateX(0);
}
}

View File

@ -223,7 +223,7 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
} }
}) })
this.bellPlayer = document.createElement('audio') this.bellPlayer = document.createElement('audio')
this.bellPlayer.src = require<string>('../bell.ogg') this.bellPlayer.src = require('../bell.ogg').default
this.contextMenuProviders.sort((a, b) => a.weight - b.weight) this.contextMenuProviders.sort((a, b) => a.weight - b.weight)
} }

View File

@ -24,6 +24,7 @@ export class XTermFrontend extends Frontend {
protected xtermCore: any protected xtermCore: any
protected enableWebGL = false protected enableWebGL = false
private xterm: Terminal private xterm: Terminal
private element?: HTMLElement
private configuredFontSize = 0 private configuredFontSize = 0
private configuredLinePadding = 0 private configuredLinePadding = 0
private zoom = 0 private zoom = 0
@ -63,6 +64,9 @@ export class XTermFrontend extends Frontend {
this.copySelection() this.copySelection()
} }
}) })
this.xterm.onBell(() => {
this.bell.next()
})
this.xterm.loadAddon(this.fitAddon) this.xterm.loadAddon(this.fitAddon)
this.xterm.loadAddon(this.serializeAddon) this.xterm.loadAddon(this.serializeAddon)
@ -135,6 +139,7 @@ export class XTermFrontend extends Frontend {
async attach (host: HTMLElement): Promise<void> { async attach (host: HTMLElement): Promise<void> {
this.configure() this.configure()
this.element = host
this.xterm.open(host) this.xterm.open(host)
this.opened = true this.opened = true
@ -217,7 +222,12 @@ export class XTermFrontend extends Frontend {
} }
visualBell (): void { visualBell (): void {
this.xtermCore.bell() if (this.element) {
this.element.style.animation = 'none'
setTimeout(() => {
this.element!.style.animation = 'terminalShakeFrames 0.3s ease'
})
}
} }
scrollToBottom (): void { scrollToBottom (): void {