forked from Shinonome/dots-hyprland
425 lines
14 KiB
QML
425 lines
14 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import qs
|
|
import qs.services
|
|
import qs.modules.common
|
|
import qs.modules.common.widgets
|
|
|
|
ContentPage {
|
|
forceWidth: true
|
|
ContentSection {
|
|
title: Translation.tr("Policies")
|
|
|
|
ConfigRow {
|
|
ColumnLayout {
|
|
// Weeb policy
|
|
ContentSubsectionLabel {
|
|
text: Translation.tr("Weeb")
|
|
}
|
|
ConfigSelectionArray {
|
|
currentValue: Config.options.policies.weeb
|
|
configOptionName: "policies.weeb"
|
|
onSelected: newValue => {
|
|
Config.options.policies.weeb = newValue;
|
|
}
|
|
options: [
|
|
{
|
|
displayName: Translation.tr("No"),
|
|
value: 0
|
|
},
|
|
{
|
|
displayName: Translation.tr("Yes"),
|
|
value: 1
|
|
},
|
|
{
|
|
displayName: Translation.tr("Closet"),
|
|
value: 2
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
ColumnLayout {
|
|
// AI policy
|
|
ContentSubsectionLabel {
|
|
text: Translation.tr("AI")
|
|
}
|
|
ConfigSelectionArray {
|
|
currentValue: Config.options.policies.ai
|
|
configOptionName: "policies.ai"
|
|
onSelected: newValue => {
|
|
Config.options.policies.ai = newValue;
|
|
}
|
|
options: [
|
|
{
|
|
displayName: Translation.tr("No"),
|
|
value: 0
|
|
},
|
|
{
|
|
displayName: Translation.tr("Yes"),
|
|
value: 1
|
|
},
|
|
{
|
|
displayName: Translation.tr("Local only"),
|
|
value: 2
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Bar")
|
|
|
|
ConfigSelectionArray {
|
|
currentValue: Config.options.bar.cornerStyle
|
|
configOptionName: "bar.cornerStyle"
|
|
onSelected: newValue => {
|
|
Config.options.bar.cornerStyle = newValue;
|
|
}
|
|
options: [
|
|
{
|
|
displayName: Translation.tr("Hug"),
|
|
value: 0
|
|
},
|
|
{
|
|
displayName: Translation.tr("Float"),
|
|
value: 1
|
|
},
|
|
{
|
|
displayName: Translation.tr("Plain rectangle"),
|
|
value: 2
|
|
}
|
|
]
|
|
}
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Overall appearance")
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr('Borderless')
|
|
checked: Config.options.bar.borderless
|
|
onCheckedChanged: {
|
|
Config.options.bar.borderless = checked;
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr('Show background')
|
|
checked: Config.options.bar.showBackground
|
|
onCheckedChanged: {
|
|
Config.options.bar.showBackground = checked;
|
|
}
|
|
StyledToolTip {
|
|
content: Translation.tr("Note: turning off can hurt readability")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Buttons")
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr("Screen snip")
|
|
checked: Config.options.bar.utilButtons.showScreenSnip
|
|
onCheckedChanged: {
|
|
Config.options.bar.utilButtons.showScreenSnip = checked;
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr("Color picker")
|
|
checked: Config.options.bar.utilButtons.showColorPicker
|
|
onCheckedChanged: {
|
|
Config.options.bar.utilButtons.showColorPicker = checked;
|
|
}
|
|
}
|
|
}
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr("Mic toggle")
|
|
checked: Config.options.bar.utilButtons.showMicToggle
|
|
onCheckedChanged: {
|
|
Config.options.bar.utilButtons.showMicToggle = checked;
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr("Keyboard toggle")
|
|
checked: Config.options.bar.utilButtons.showKeyboardToggle
|
|
onCheckedChanged: {
|
|
Config.options.bar.utilButtons.showKeyboardToggle = checked;
|
|
}
|
|
}
|
|
}
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr("Dark/Light toggle")
|
|
checked: Config.options.bar.utilButtons.showDarkModeToggle
|
|
onCheckedChanged: {
|
|
Config.options.bar.utilButtons.showDarkModeToggle = checked;
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr("Performance Profile toggle")
|
|
checked: Config.options.bar.utilButtons.showPerformanceProfileToggle
|
|
onCheckedChanged: {
|
|
Config.options.bar.utilButtons.showPerformanceProfileToggle = checked;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Workspaces")
|
|
tooltip: Translation.tr("Tip: Hide icons and always show numbers for\nthe classic illogical-impulse experience")
|
|
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr('Show app icons')
|
|
checked: Config.options.bar.workspaces.showAppIcons
|
|
onCheckedChanged: {
|
|
Config.options.bar.workspaces.showAppIcons = checked;
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr('Tint app icons')
|
|
checked: Config.options.bar.workspaces.monochromeIcons
|
|
onCheckedChanged: {
|
|
Config.options.bar.workspaces.monochromeIcons = checked;
|
|
}
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr('Always show numbers')
|
|
checked: Config.options.bar.workspaces.alwaysShowNumbers
|
|
onCheckedChanged: {
|
|
Config.options.bar.workspaces.alwaysShowNumbers = checked;
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Workspaces shown")
|
|
value: Config.options.bar.workspaces.shown
|
|
from: 1
|
|
to: 30
|
|
stepSize: 1
|
|
onValueChanged: {
|
|
Config.options.bar.workspaces.shown = value;
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Number show delay when pressing Super (ms)")
|
|
value: Config.options.bar.workspaces.showNumberDelay
|
|
from: 0
|
|
to: 1000
|
|
stepSize: 50
|
|
onValueChanged: {
|
|
Config.options.bar.workspaces.showNumberDelay = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Tray")
|
|
|
|
ConfigSwitch {
|
|
text: Translation.tr('Tint icons')
|
|
checked: Config.options.bar.tray.monochromeIcons
|
|
onCheckedChanged: {
|
|
Config.options.bar.tray.monochromeIcons = checked;
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Weather")
|
|
ConfigSwitch {
|
|
text: Translation.tr("Enable")
|
|
checked: Config.options.bar.weather.enable
|
|
onCheckedChanged: {
|
|
Config.options.bar.weather.enable = checked;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Battery")
|
|
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Low warning")
|
|
value: Config.options.battery.low
|
|
from: 0
|
|
to: 100
|
|
stepSize: 5
|
|
onValueChanged: {
|
|
Config.options.battery.low = value;
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Critical warning")
|
|
value: Config.options.battery.critical
|
|
from: 0
|
|
to: 100
|
|
stepSize: 5
|
|
onValueChanged: {
|
|
Config.options.battery.critical = value;
|
|
}
|
|
}
|
|
}
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr("Automatic suspend")
|
|
checked: Config.options.battery.automaticSuspend
|
|
onCheckedChanged: {
|
|
Config.options.battery.automaticSuspend = checked;
|
|
}
|
|
StyledToolTip {
|
|
content: Translation.tr("Automatically suspends the system when battery is low")
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Suspend at")
|
|
value: Config.options.battery.suspend
|
|
from: 0
|
|
to: 100
|
|
stepSize: 5
|
|
onValueChanged: {
|
|
Config.options.battery.suspend = value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Dock")
|
|
|
|
ConfigSwitch {
|
|
text: Translation.tr("Enable")
|
|
checked: Config.options.dock.enable
|
|
onCheckedChanged: {
|
|
Config.options.dock.enable = checked;
|
|
}
|
|
}
|
|
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSwitch {
|
|
text: Translation.tr("Hover to reveal")
|
|
checked: Config.options.dock.hoverToReveal
|
|
onCheckedChanged: {
|
|
Config.options.dock.hoverToReveal = checked;
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr("Pinned on startup")
|
|
checked: Config.options.dock.pinnedOnStartup
|
|
onCheckedChanged: {
|
|
Config.options.dock.pinnedOnStartup = checked;
|
|
}
|
|
}
|
|
}
|
|
ConfigSwitch {
|
|
text: Translation.tr("Tint app icons")
|
|
checked: Config.options.dock.monochromeIcons
|
|
onCheckedChanged: {
|
|
Config.options.dock.monochromeIcons = checked;
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Sidebars")
|
|
ConfigSwitch {
|
|
text: Translation.tr('Keep right sidebar loaded')
|
|
checked: Config.options.sidebar.keepRightSidebarLoaded
|
|
onCheckedChanged: {
|
|
Config.options.sidebar.keepRightSidebarLoaded = checked;
|
|
}
|
|
StyledToolTip {
|
|
content: Translation.tr("When enabled keeps the content of the right sidebar loaded to reduce the delay when opening,\nat the cost of around 15MB of consistent RAM usage. Delay significance depends on your system's performance.\nUsing a custom kernel like linux-cachyos might help")
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("On-screen display")
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Timeout (ms)")
|
|
value: Config.options.osd.timeout
|
|
from: 100
|
|
to: 3000
|
|
stepSize: 100
|
|
onValueChanged: {
|
|
Config.options.osd.timeout = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Overview")
|
|
ConfigSwitch {
|
|
text: Translation.tr("Enable")
|
|
checked: Config.options.overview.enable
|
|
onCheckedChanged: {
|
|
Config.options.overview.enable = checked;
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Scale (%)")
|
|
value: Config.options.overview.scale * 100
|
|
from: 1
|
|
to: 100
|
|
stepSize: 1
|
|
onValueChanged: {
|
|
Config.options.overview.scale = value / 100;
|
|
}
|
|
}
|
|
ConfigRow {
|
|
uniform: true
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Rows")
|
|
value: Config.options.overview.rows
|
|
from: 1
|
|
to: 20
|
|
stepSize: 1
|
|
onValueChanged: {
|
|
Config.options.overview.rows = value;
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Columns")
|
|
value: Config.options.overview.columns
|
|
from: 1
|
|
to: 20
|
|
stepSize: 1
|
|
onValueChanged: {
|
|
Config.options.overview.columns = value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Screenshot tool")
|
|
|
|
ConfigSwitch {
|
|
text: Translation.tr('Show regions of potential interest')
|
|
checked: Config.options.screenshotTool.showContentRegions
|
|
onCheckedChanged: {
|
|
Config.options.screenshotTool.showContentRegions = checked;
|
|
}
|
|
StyledToolTip {
|
|
content: Translation.tr("Such regions could be images or parts of the screen that have some containment.\nMight not always be accurate.\nThis is done with an image processing algorithm run locally and no AI is used.")
|
|
}
|
|
}
|
|
}
|
|
}
|