Files
tabby/tabby-settings/src/components/windowSettingsTab.component.pug
2024-10-20 23:20:14 +02:00

445 lines
14 KiB
Plaintext

h3.mb-3(translate) Window
.form-line(*ngIf='themes.length > 1')
.header
.title(translate) Theme
select.form-control(
[(ngModel)]='config.store.appearance.theme',
(ngModelChange)='saveConfiguration()',
)
option(*ngFor='let theme of themes', [ngValue]='theme.name') {{theme.name|translate}}
.form-line
.header
.title(translate) Spaciness
.description(translate) Controls the amount of space between elements
input(
type='range',
[(ngModel)]='config.store.appearance.spaciness',
(mouseup)='saveConfiguration()',
min='0.6',
max='1.4',
step='0.1'
)
.form-line(*ngIf='hostApp.platform === Platform.Web')
.header
.title(translate) Ask before closing the browser tab
.description(translate) Prevents accidental closing
toggle(
[(ngModel)]='config.store.web.preventAccidentalTabClosure',
(ngModelChange)='saveConfiguration()',
)
.form-line(*ngIf='platform.supportsWindowControls')
.header
.title(*ngIf='hostApp.platform !== Platform.macOS', translate) Acrylic background
.title(*ngIf='hostApp.platform === Platform.macOS', translate) Vibrancy
.description(translate) Gives the window a blurred transparent background
toggle(
[(ngModel)]='config.store.appearance.vibrancy',
(ngModelChange)='saveConfiguration()'
)
.form-line(*ngIf='config.store.appearance.vibrancy && isFluentVibrancySupported && config.store.hacks.enableFluentBackground')
.header
.title(translate) Background type
.btn-group
input.btn-check(
type='radio',
name='vibracy',
[(ngModel)]='config.store.appearance.vibrancyType',
(ngModelChange)='saveConfiguration()',
id='vibrancyTypeBlur',
[value]='"blur"'
)
label.btn.btn-secondary(
for='vibrancyTypeBlur'
)
span(translate) Blur
input.btn-check(
type='radio',
name='vibracy',
[(ngModel)]='config.store.appearance.vibrancyType',
(ngModelChange)='saveConfiguration()',
id='vibrancyTypeFluent',
[value]='"fluent"'
)
label.btn.btn-secondary(
for='vibrancyTypeFluent'
)
span Fluent
.form-line(*ngIf='platform.supportsWindowControls')
.header
.title(translate) Opacity
input(
type='range',
[(ngModel)]='config.store.appearance.opacity',
(ngModelChange)='saveConfiguration(); (hostApp.platform === Platform.Linux && config.requestRestart())',
min='0.4',
max='1',
step='0.01'
)
.form-line(*ngIf='platform.supportsWindowControls')
.header
.title(translate) Window frame
.description(translate) Whether a custom window or an OS native window should be used
.btn-group
input.btn-check(
type='radio',
name='frame',
[(ngModel)]='config.store.appearance.frame',
(ngModelChange)='saveConfiguration(true)',
id='frameNative',
[value]='"native"'
)
label.btn.btn-secondary(for='frameNative')
span(translate) Native
input.btn-check(
type='radio',
name='frame',
[(ngModel)]='config.store.appearance.frame',
(ngModelChange)='saveConfiguration(true)',
id='frameThin',
[value]='"thin"'
)
label.btn.btn-secondary(for='frameThin')
span(translate) Thin
input.btn-check(
type='radio',
name='frame',
[(ngModel)]='config.store.appearance.frame',
(ngModelChange)='saveConfiguration(true)',
id='frameFull',
[value]='"full"'
)
label.btn.btn-secondary(for='frameFull')
span(translate) Full
.form-line(*ngIf='hostApp.platform !== Platform.Web && hostApp.platform !== Platform.Linux')
.header
.title(translate) Hide tray
.description(translate) Hide Tabby in tray or menu bar.
toggle(
[(ngModel)]='config.store.hideTray',
(ngModelChange)='saveConfiguration(true)'
)
h3.mt-4(translate) Docking
.form-line(*ngIf='docking')
.header
.title(translate) Dock the terminal
.description(translate) Snaps the window to a side of the screen
.btn-group
input.btn-check(
type='radio',
name='docking',
[(ngModel)]='config.store.appearance.dock',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockingOff',
[value]='"off"'
)
label.btn.btn-secondary(for='dockingOff')
span(translate) Off
input.btn-check(
type='radio',
name='docking',
[(ngModel)]='config.store.appearance.dock',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockingTop',
[value]='"top"'
)
label.btn.btn-secondary(for='dockingTop')
span(translate) Top
input.btn-check(
type='radio',
name='docking',
[(ngModel)]='config.store.appearance.dock',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockingLeft',
[value]='"left"'
)
label.btn.btn-secondary(for='dockingLeft')
span(translate) Left
input.btn-check(
type='radio',
name='docking',
[(ngModel)]='config.store.appearance.dock',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockingRight',
[value]='"right"'
)
label.btn.btn-secondary(for='dockingRight')
span(translate) Right
input.btn-check(
type='radio',
name='docking',
[(ngModel)]='config.store.appearance.dock',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockingBottom',
[value]='"bottom"'
)
label.btn.btn-secondary(for='dockingBottom')
span(translate) Bottom
.ms-5.form-line(*ngIf='docking && config.store.appearance.dock != "off"')
.header
.title(translate) Display on
.description(translate) Snaps the window to a side of the screen
div
input.btn-check(
type='radio',
name='dockScreen',
[(ngModel)]='config.store.appearance.dockScreen',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockScreenCurrent',
value='current'
)
label.btn.btn-secondary(id='dockScreenCurrent')
span(translate) Current
input.btn-check(
*ngFor='let screen of screens',
type='radio',
name='dockScreen',
[(ngModel)]='config.store.appearance.dockScreen',
(ngModelChange)='saveConfiguration(); docking.dock()',
id='dockScreen{{screen.id}}',
[value]='screen.id'
)
label.btn.btn-secondary(*ngFor='let screen of screens', for='dockScreen{{screen.id}}')
| {{screen.name}}
.ms-5.form-line(*ngIf='docking && config.store.appearance.dock != "off"')
.header
.title(translate) Dock always on top
.description(translate) Keep docked terminal always on top
toggle(
[(ngModel)]='config.store.appearance.dockAlwaysOnTop',
(ngModelChange)='saveConfiguration(); docking.dock()',
)
.ms-5.form-line(*ngIf='docking && config.store.appearance.dock != "off"')
.header
.title(translate) Docked terminal size
.description(translate) Window dimension away from the edge
input(
type='range',
[(ngModel)]='config.store.appearance.dockFill',
(mouseup)='saveConfiguration(); docking.dock()',
min='0.05',
max='1',
step='0.01'
)
.ms-5.form-line(*ngIf='docking && config.store.appearance.dock != "off"')
.header
.title(translate) Docked terminal space
.description(translate) Window dimension along the edge
input(
type='range',
[(ngModel)]='config.store.appearance.dockSpace',
(mouseup)='saveConfiguration(); docking.dock()',
min='0.2',
max='1',
step='0.01'
)
.ms-5.form-line(*ngIf='docking && config.store.appearance.dock != "off"')
.header
.title(translate) Hide window on focus loss
.description(translate) Hides the docked terminal when you click away.
toggle(
[(ngModel)]='config.store.appearance.dockHideOnBlur',
(ngModelChange)='saveConfiguration(); ',
)
h3.mt-4(translate) Tabs
.form-line
.header
.title(translate) Tabs location
.btn-group
input.btn-check(
type='radio',
name='tabsLocation',
[(ngModel)]='config.store.appearance.tabsLocation',
(ngModelChange)='saveConfiguration()',
id='tabsLocationTop',
[value]='"top"'
)
label.btn.btn-secondary(for='tabsLocationTop')
span(translate) Top
input.btn-check(
type='radio',
name='tabsLocation',
[(ngModel)]='config.store.appearance.tabsLocation',
(ngModelChange)='saveConfiguration()',
id='tabsLocationBottom',
[value]='"bottom"'
)
label.btn.btn-secondary(for='tabsLocationBottom')
span(translate) Bottom
input.btn-check(
type='radio',
name='tabsLocation',
[(ngModel)]='config.store.appearance.tabsLocation',
(ngModelChange)='saveConfiguration()',
id='tabsLocationLeft',
[value]='"left"'
)
label.btn.btn-secondary(for='tabsLocationLeft')
span(translate) Left
input.btn-check(
type='radio',
name='tabsLocation',
[(ngModel)]='config.store.appearance.tabsLocation',
(ngModelChange)='saveConfiguration()',
id='tabsLocationRight',
[value]='"right"'
)
label.btn.btn-secondary(for='tabsLocationRight')
span(translate) Right
.form-line
.header
.title(translate) Tabs width
.btn-group
input.btn-check(
type='radio',
name='flexTabs',
[(ngModel)]='config.store.appearance.flexTabs',
(ngModelChange)='saveConfiguration()',
id='flexTabsTrue',
[value]='true'
)
label.btn.btn-secondary(for='flexTabsTrue')
span(translate, translateComment='[Dynamic] tab width') id.tab-width.dynamic
input.btn-check(
type='radio',
name='flexTabs',
[(ngModel)]='config.store.appearance.flexTabs',
(ngModelChange)='saveConfiguration()',
id='flexTabsFalse',
[value]='false'
)
label.btn.btn-secondary(for='flexTabsFalse')
span(translate) Fixed
.form-line
.header
.title(translate) Show tabs in fullscreen mode
toggle(
[(ngModel)]='config.store.appearance.tabsInFullscreen',
(ngModelChange)='config.save();',
)
.form-line
.header
.title(translate) Hide tab index
toggle(
[(ngModel)]='config.store.terminal.hideTabIndex',
(ngModelChange)='config.save();',
)
.form-line
.header
.title(translate) Show profile icon on tab
toggle(
[(ngModel)]='config.store.terminal.showTabProfileIcon',
(ngModelChange)='config.save();',
)
.form-line
.header
.title(translate) Hide tab options button
toggle(
[(ngModel)]='config.store.terminal.hideTabOptionsButton',
(ngModelChange)='config.save();',
)
.form-line
.header
.title(translate) Hide tab close button
toggle(
[(ngModel)]='config.store.terminal.hideCloseButton',
(ngModelChange)='config.save();',
)
.form-line
.header
.title(translate) Close the window after closing the last tab
toggle(
[(ngModel)]='config.store.appearance.lastTabClosesWindow',
(ngModelChange)='config.save();',
)
h3.mt-4(translate) Panes
.form-line()
.header
.title(translate) Pane resize step
.description(translate) For keyboard shortcuts
input(
type='range',
[(ngModel)]='config.store.terminal.paneResizeStep',
(ngModelChange)='saveConfiguration();',
min='0.1',
max='0.9',
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
.form-line(*ngIf='hostApp.platform !== Platform.Web')
.header
.title(translate) Disable GPU acceleration
.description(translate) Tick this if you're experiencing aliasing, ghosting or other visual issues
toggle(
[(ngModel)]='config.store.hacks.disableGPU',
(ngModelChange)='config.save(); config.requestRestart()'
)
.form-line(*ngIf='hostApp.platform === Platform.Windows && isFluentVibrancySupported')
.header
.title(translate) Enable fluent background option
.description(translate) Experimental Windows 10 background style known to cause issues
toggle(
[(ngModel)]='config.store.hacks.enableFluentBackground',
(ngModelChange)='config.save()'
)
.form-line(*ngIf='hostApp.platform === Platform.Windows && isFluentVibrancySupported')
.header
.title(translate) Disable fluent background while dragging
.description(translate) Fluent background sometimes causes drag lag
toggle(
[(ngModel)]='config.store.hacks.disableVibrancyWhileDragging',
(ngModelChange)='config.save(); config.requestRestart()'
)