diff --git a/app/lib/window.ts b/app/lib/window.ts index 131ddfbb..05df32ac 100644 --- a/app/lib/window.ts +++ b/app/lib/window.ts @@ -96,11 +96,9 @@ export class Window { bwOptions.titleBarStyle = 'hidden' // If not macOS and native appearance is not toggled, use WCO. } else { - bwOptions.titleBarStyle = 'hidden', + bwOptions.titleBarStyle = 'hidden' bwOptions.titleBarOverlay = { color: '#00000000', - symbolColor: '#ffffff', - height: 32, } } } @@ -394,6 +392,23 @@ export class Window { this.setVibrancy(enabled, type) }) + ipcMain.on('window-set-window-controls-color', (event, theme) => { + if (!this.window || event.sender !== this.window.webContents) { + return + } + + // let color: string = theme.backgroundMore + let symbolColor: string = theme.foreground + + this.window.setTitleBarOverlay( + { + // color: '#00000000', + symbolColor: symbolColor, + height: 32, + } + ) + }) + ipcMain.on('window-set-title', (event, title) => { if (!this.window || event.sender !== this.window.webContents) { return diff --git a/tabby-core/src/components/appRoot.component.pug b/tabby-core/src/components/appRoot.component.pug index 1c59b2b8..3ac5126e 100644 --- a/tabby-core/src/components/appRoot.component.pug +++ b/tabby-core/src/components/appRoot.component.pug @@ -88,6 +88,11 @@ title-bar( && (hostApp.platform == Platform.Linux)', ) + div.window-controls-spacer( + *ngIf='config.store.appearance.frame == "thin" \ + && (hostApp.platform == Platform.Windows)', + ) + .content start-page.content-tab.content-tab-active(*ngIf='ready && app.tabs.length == 0') diff --git a/tabby-core/src/components/appRoot.component.scss b/tabby-core/src/components/appRoot.component.scss index 77a4ca46..1ec365a7 100644 --- a/tabby-core/src/components/appRoot.component.scss +++ b/tabby-core/src/components/appRoot.component.scss @@ -142,6 +142,11 @@ $tab-border-radius: 4px; } } + &>.window-controls-spacer { + min-width: 138px; + height: 100%; + } + & > .inset { width: calc(70px + 15px * var(--spaciness)); height: var(--tabs-height); diff --git a/tabby-electron/src/index.ts b/tabby-electron/src/index.ts index 11d24763..3034e9c8 100644 --- a/tabby-electron/src/index.ts +++ b/tabby-electron/src/index.ts @@ -99,6 +99,7 @@ export default class ElectronModule { }) this.registerGlobalHotkey() this.updateVibrancy() + this.updateWindowControlsColor() }) config.changed$.subscribe(() => { @@ -131,6 +132,8 @@ export default class ElectronModule { config.changed$.subscribe(() => this.updateVibrancy()) + config.changed$.subscribe(() => this.updateWindowControlsColor()) + config.ready$.toPromise().then(() => { dockMenu.update() }) @@ -169,6 +172,15 @@ export default class ElectronModule { this.hostWindow.setOpacity(this.config.store.appearance.opacity) } + + private updateWindowControlsColor () { + // if windows and not using native frame, WCO does not exist, return. + if (this.hostApp.platform === Platform.Windows && this.config.store.appearance.frame == "native") { + return + } + + this.electron.ipcRenderer.send('window-set-window-controls-color', this.config.store.terminal.colorScheme) + } } export { ElectronHostWindow, ElectronHostAppService, ElectronService }