mirror of
https://github.com/danbulant/dots-hyprland
synced 2026-05-24 12:22:09 +00:00
234 lines
7.5 KiB
QML
234 lines
7.5 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import "root:/"
|
|
import "root:/services/"
|
|
import "root:/modules/common/"
|
|
import "root:/modules/common/widgets/"
|
|
|
|
ContentPage {
|
|
forceWidth: true
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Audio")
|
|
|
|
ConfigSwitch {
|
|
text: Translation.tr("Earbang protection")
|
|
checked: Config.options.audio.protection.enable
|
|
onCheckedChanged: {
|
|
Config.options.audio.protection.enable = checked;
|
|
}
|
|
StyledToolTip {
|
|
content: Translation.tr("Prevents abrupt increments and restricts volume limit")
|
|
}
|
|
}
|
|
ConfigRow {
|
|
// uniform: true
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Max allowed increase")
|
|
value: Config.options.audio.protection.maxAllowedIncrease
|
|
from: 0
|
|
to: 100
|
|
stepSize: 2
|
|
onValueChanged: {
|
|
Config.options.audio.protection.maxAllowedIncrease = value;
|
|
}
|
|
}
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Volume limit")
|
|
value: Config.options.audio.protection.maxAllowed
|
|
from: 0
|
|
to: 100
|
|
stepSize: 2
|
|
onValueChanged: {
|
|
Config.options.audio.protection.maxAllowed = value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ContentSection {
|
|
title: Translation.tr("AI")
|
|
MaterialTextField {
|
|
Layout.fillWidth: true
|
|
placeholderText: Translation.tr("System prompt")
|
|
text: Config.options.ai.systemPrompt
|
|
wrapMode: TextEdit.Wrap
|
|
onTextChanged: {
|
|
Qt.callLater(() => {
|
|
Config.options.ai.systemPrompt = text;
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
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("Networking")
|
|
MaterialTextField {
|
|
Layout.fillWidth: true
|
|
placeholderText: Translation.tr("User agent (for services that require it)")
|
|
text: Config.options.networking.userAgent
|
|
wrapMode: TextEdit.Wrap
|
|
onTextChanged: {
|
|
Config.options.networking.userAgent = text;
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Resources")
|
|
ConfigSpinBox {
|
|
text: Translation.tr("Polling interval (ms)")
|
|
value: Config.options.resources.updateInterval
|
|
from: 100
|
|
to: 10000
|
|
stepSize: 100
|
|
onValueChanged: {
|
|
Config.options.resources.updateInterval = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Search")
|
|
|
|
ConfigSwitch {
|
|
text: Translation.tr("Use Levenshtein distance-based algorithm instead of fuzzy")
|
|
checked: Config.options.search.sloppy
|
|
onCheckedChanged: {
|
|
Config.options.search.sloppy = checked;
|
|
}
|
|
StyledToolTip {
|
|
content: Translation.tr("Could be better if you make a ton of typos,\nbut results can be weird and might not work with acronyms\n(e.g. \"GIMP\" might not give you the paint program)")
|
|
}
|
|
}
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Prefixes")
|
|
ConfigRow {
|
|
uniform: true
|
|
|
|
MaterialTextField {
|
|
Layout.fillWidth: true
|
|
placeholderText: Translation.tr("Action")
|
|
text: Config.options.search.prefix.action
|
|
wrapMode: TextEdit.Wrap
|
|
onTextChanged: {
|
|
Config.options.search.prefix.action = text;
|
|
}
|
|
}
|
|
MaterialTextField {
|
|
Layout.fillWidth: true
|
|
placeholderText: Translation.tr("Clipboard")
|
|
text: Config.options.search.prefix.clipboard
|
|
wrapMode: TextEdit.Wrap
|
|
onTextChanged: {
|
|
Config.options.search.prefix.clipboard = text;
|
|
}
|
|
}
|
|
MaterialTextField {
|
|
Layout.fillWidth: true
|
|
placeholderText: Translation.tr("Emojis")
|
|
text: Config.options.search.prefix.emojis
|
|
wrapMode: TextEdit.Wrap
|
|
onTextChanged: {
|
|
Config.options.search.prefix.emojis = text;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ContentSubsection {
|
|
title: Translation.tr("Web search")
|
|
MaterialTextField {
|
|
Layout.fillWidth: true
|
|
placeholderText: Translation.tr("Base URL")
|
|
text: Config.options.search.engineBaseUrl
|
|
wrapMode: TextEdit.Wrap
|
|
onTextChanged: {
|
|
Config.options.search.engineBaseUrl = text;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ContentSection {
|
|
title: Translation.tr("Time")
|
|
|
|
ContentSubsection {
|
|
title: Translation.tr("Format")
|
|
tooltip: ""
|
|
|
|
ConfigSelectionArray {
|
|
currentValue: Config.options.time.format
|
|
configOptionName: "time.format"
|
|
onSelected: newValue => {
|
|
Config.options.time.format = newValue;
|
|
}
|
|
options: [
|
|
{
|
|
displayName: Translation.tr("24h"),
|
|
value: "hh:mm"
|
|
},
|
|
{
|
|
displayName: Translation.tr("12h am/pm"),
|
|
value: "h:mm ap"
|
|
},
|
|
{
|
|
displayName: Translation.tr("12h AM/PM"),
|
|
value: "h:mm AP"
|
|
},
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|