Files
illogical-impulse/.config/quickshell/ii/modules/settings/InterfaceConfig.qml
T
2025-10-04 17:28:30 +03:00

572 lines
20 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 {
icon: "wallpaper"
title: Translation.tr("Background")
ConfigRow{
ConfigSwitch {
buttonIcon: "nest_clock_farsight_analog"
text: Translation.tr("Show clock")
checked: Config.options.background.clock.show
onCheckedChanged: {
Config.options.background.clock.show = checked;
}
}
ConfigSwitch {
buttonIcon: "format_quote"
text: Translation.tr("Show quote")
checked: Config.options.background.showQuote
onCheckedChanged: {
Config.options.background.showQuote = checked;
}
}
}
ConfigSpinBox {
icon: "loupe"
text: Translation.tr("Scale (%)")
value: Config.options.background.clock.scale * 100
from: 1
to: 200
stepSize: 2
onValueChanged: {
Config.options.background.clock.scale = value / 100;
}
}
ContentSubsection {
title: Translation.tr("Clock style")
ConfigSelectionArray {
currentValue: Config.options.background.clock.style
onSelected: newValue => {
Config.options.background.clock.style = newValue;
}
options: [
{
displayName: Translation.tr("Simple digital"),
icon: "timer_10",
value: "digital"
},
{
displayName: Translation.tr("Material cookie"),
icon: "cookie",
value: "cookie"
}
]
}
}
ConfigRow{
enabled: Config.options.background.clock.style === "cookie"
ConfigSpinBox {
icon: "support"
text: Translation.tr("Clock sides")
value: Config.options.background.clock.clockSides
from: 1
to: 36
stepSize: 1
onValueChanged: {
Config.options.background.clock.clockSides = value;
}
}
ConfigSwitch {
enabled: Config.options.background.clock.cookie.hourDots
buttonIcon: "brightness_7"
text: Translation.tr("Center glow")
checked: Config.options.background.clock.cookie.centerGlow
onEnabledChanged: {
checked = Config.options.background.clock.cookie.centerGlow
}
onCheckedChanged: {
Config.options.background.clock.cookie.centerGlow = checked;
}
}
ConfigSwitch {
buttonIcon: "waves"
text: Translation.tr("Wave animation")
checked: Config.options.background.clock.cookie.waveAnimation
onCheckedChanged: {
Config.options.background.clock.cookie.waveAnimation = checked;
}
StyledToolTip {
text: "It may effect performance"
}
}
}
ConfigRow{
enabled: Config.options.background.clock.style === "cookie"
ConfigSwitch {
buttonIcon: "graph_6"
text: Translation.tr("Hour dots")
checked: Config.options.background.clock.cookie.hourDots
onCheckedChanged: {
Config.options.background.clock.cookie.hourDots = checked;
Config.options.background.clock.cookie.centerGlow = checked ? Config.options.background.clock.cookie.centerGlow : false;
}
}
ConfigSwitch {
buttonIcon: "farsight_digital"
text: Translation.tr("Clock indicator")
checked: Config.options.background.clock.cookie.timeIndicators
onCheckedChanged: {
Config.options.background.clock.cookie.timeIndicators = checked;
}
}
ConfigSwitch {
buttonIcon: "line_end"
text: Translation.tr("Minute hand adjust")
checked: Config.options.background.clock.cookie.minuteHandSizeAdjust
onCheckedChanged: {
Config.options.background.clock.cookie.minuteHandSizeAdjust = checked;
}
}
}
ContentSubsection {
title: Translation.tr("Quote settings")
MaterialTextArea {
Layout.fillWidth: true
placeholderText: Translation.tr("Quote")
text: Config.options.background.quote
wrapMode: TextEdit.Wrap
onTextChanged: {
Config.options.background.quote = text;
}
}
}
ContentSubsection {
title: Translation.tr("Wallpaper parallax")
ConfigSwitch {
buttonIcon: "unfold_more_double"
text: Translation.tr("Vertical")
checked: Config.options.background.parallax.vertical
onCheckedChanged: {
Config.options.background.parallax.vertical = checked;
}
}
ConfigRow {
uniform: true
ConfigSwitch {
buttonIcon: "counter_1"
text: Translation.tr("Depends on workspace")
checked: Config.options.background.parallax.enableWorkspace
onCheckedChanged: {
Config.options.background.parallax.enableWorkspace = checked;
}
}
ConfigSwitch {
buttonIcon: "side_navigation"
text: Translation.tr("Depends on sidebars")
checked: Config.options.background.parallax.enableSidebar
onCheckedChanged: {
Config.options.background.parallax.enableSidebar = checked;
}
}
}
ConfigSpinBox {
icon: "loupe"
text: Translation.tr("Preferred wallpaper zoom (%)")
value: Config.options.background.parallax.workspaceZoom * 100
from: 100
to: 150
stepSize: 1
onValueChanged: {
Config.options.background.parallax.workspaceZoom = value / 100;
}
}
}
}
ContentSection {
icon: "point_scan"
title: Translation.tr("Crosshair overlay")
MaterialTextArea {
Layout.fillWidth: true
placeholderText: Translation.tr("Crosshair code (in Valorant's format)")
text: Config.options.crosshair.code
wrapMode: TextEdit.Wrap
onTextChanged: {
Config.options.crosshair.code = text;
}
}
RowLayout {
StyledText {
Layout.leftMargin: 10
color: Appearance.colors.colSubtext
font.pixelSize: Appearance.font.pixelSize.smallie
text: Translation.tr("Press Super+G to toggle appearance")
}
Item { Layout.fillWidth: true }
RippleButtonWithIcon {
id: editorButton
buttonRadius: Appearance.rounding.full
materialIcon: "open_in_new"
mainText: Translation.tr("Open editor")
onClicked: {
Qt.openUrlExternally(`https://www.vcrdb.net/builder?c=${Config.options.crosshair.code}`);
}
StyledToolTip {
text: "www.vcrdb.net"
}
}
}
}
ContentSection {
icon: "call_to_action"
title: Translation.tr("Dock")
ConfigSwitch {
buttonIcon: "check"
text: Translation.tr("Enable")
checked: Config.options.dock.enable
onCheckedChanged: {
Config.options.dock.enable = checked;
}
}
ConfigRow {
uniform: true
ConfigSwitch {
buttonIcon: "highlight_mouse_cursor"
text: Translation.tr("Hover to reveal")
checked: Config.options.dock.hoverToReveal
onCheckedChanged: {
Config.options.dock.hoverToReveal = checked;
}
}
ConfigSwitch {
buttonIcon: "keep"
text: Translation.tr("Pinned on startup")
checked: Config.options.dock.pinnedOnStartup
onCheckedChanged: {
Config.options.dock.pinnedOnStartup = checked;
}
}
}
ConfigSwitch {
buttonIcon: "colors"
text: Translation.tr("Tint app icons")
checked: Config.options.dock.monochromeIcons
onCheckedChanged: {
Config.options.dock.monochromeIcons = checked;
}
}
}
ContentSection {
icon: "lock"
title: Translation.tr("Lock screen")
ConfigSwitch {
buttonIcon: "account_circle"
text: Translation.tr('Launch on startup')
checked: Config.options.lock.launchOnStartup
onCheckedChanged: {
Config.options.lock.launchOnStartup = checked;
}
}
ContentSubsection {
title: Translation.tr("Security")
ConfigSwitch {
buttonIcon: "settings_power"
text: Translation.tr('Require password to power off/restart')
checked: Config.options.lock.security.requirePasswordToPower
onCheckedChanged: {
Config.options.lock.security.requirePasswordToPower = checked;
}
StyledToolTip {
text: Translation.tr("Remember that on most devices one can always hold the power button to force shutdown\nThis only makes it a tiny bit harder for accidents to happen")
}
}
ConfigSwitch {
buttonIcon: "key_vertical"
text: Translation.tr('Also unlock keyring')
checked: Config.options.lock.security.unlockKeyring
onCheckedChanged: {
Config.options.lock.security.unlockKeyring = checked;
}
StyledToolTip {
text: Translation.tr("This is usually safe and needed for your browser and AI sidebar anyway\nMostly useful for those who use lock on startup instead of a display manager that does it (GDM, SDDM, etc.)")
}
}
}
ContentSubsection {
title: Translation.tr("Style: general")
ConfigSwitch {
buttonIcon: "center_focus_weak"
text: Translation.tr('Center clock')
checked: Config.options.lock.centerClock
onCheckedChanged: {
Config.options.lock.centerClock = checked;
}
}
ConfigSwitch {
buttonIcon: "info"
text: Translation.tr('Show "Locked" text')
checked: Config.options.lock.showLockedText
onCheckedChanged: {
Config.options.lock.showLockedText = checked;
}
}
}
ContentSubsection {
title: Translation.tr("Style: Blurred")
ConfigSwitch {
buttonIcon: "blur_on"
text: Translation.tr('Enable blur')
checked: Config.options.lock.blur.enable
onCheckedChanged: {
Config.options.lock.blur.enable = checked;
}
}
ConfigSpinBox {
icon: "loupe"
text: Translation.tr("Extra wallpaper zoom (%)")
value: Config.options.lock.blur.extraZoom * 100
from: 1
to: 150
stepSize: 2
onValueChanged: {
Config.options.lock.blur.extraZoom = value / 100;
}
}
}
}
ContentSection {
icon: "notifications"
title: Translation.tr("Notifications")
ConfigSpinBox {
icon: "av_timer"
text: Translation.tr("Timeout duration (if not defined by notification) (ms)")
value: Config.options.notifications.timeout
from: 1000
to: 60000
stepSize: 1000
onValueChanged: {
Config.options.notifications.timeout = value;
}
}
}
ContentSection {
icon: "side_navigation"
title: Translation.tr("Sidebars")
ConfigSwitch {
buttonIcon: "memory"
text: Translation.tr('Keep right sidebar loaded')
checked: Config.options.sidebar.keepRightSidebarLoaded
onCheckedChanged: {
Config.options.sidebar.keepRightSidebarLoaded = checked;
}
StyledToolTip {
text: 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")
}
}
ContentSubsection {
title: Translation.tr("Corner open")
tooltip: Translation.tr("Allows you to open sidebars by clicking or hovering screen corners regardless of bar position")
ConfigRow {
uniform: true
ConfigSwitch {
buttonIcon: "check"
text: Translation.tr("Enable")
checked: Config.options.sidebar.cornerOpen.enable
onCheckedChanged: {
Config.options.sidebar.cornerOpen.enable = checked;
}
}
ConfigSwitch {
buttonIcon: "highlight_mouse_cursor"
text: Translation.tr("Hover to trigger")
checked: Config.options.sidebar.cornerOpen.clickless
onCheckedChanged: {
Config.options.sidebar.cornerOpen.clickless = checked;
}
StyledToolTip {
text: Translation.tr("When this is off you'll have to click")
}
}
}
ConfigRow {
uniform: true
ConfigSwitch {
buttonIcon: "vertical_align_bottom"
text: Translation.tr("Place at bottom")
checked: Config.options.sidebar.cornerOpen.bottom
onCheckedChanged: {
Config.options.sidebar.cornerOpen.bottom = checked;
}
StyledToolTip {
text: Translation.tr("Place the corners to trigger at the bottom")
}
}
ConfigSwitch {
buttonIcon: "unfold_more_double"
text: Translation.tr("Value scroll")
checked: Config.options.sidebar.cornerOpen.valueScroll
onCheckedChanged: {
Config.options.sidebar.cornerOpen.valueScroll = checked;
}
StyledToolTip {
text: Translation.tr("Brightness and volume")
}
}
}
ConfigSwitch {
buttonIcon: "visibility"
text: Translation.tr("Visualize region")
checked: Config.options.sidebar.cornerOpen.visualize
onCheckedChanged: {
Config.options.sidebar.cornerOpen.visualize = checked;
}
}
ConfigRow {
ConfigSpinBox {
icon: "arrow_range"
text: Translation.tr("Region width")
value: Config.options.sidebar.cornerOpen.cornerRegionWidth
from: 1
to: 300
stepSize: 1
onValueChanged: {
Config.options.sidebar.cornerOpen.cornerRegionWidth = value;
}
}
ConfigSpinBox {
icon: "height"
text: Translation.tr("Region height")
value: Config.options.sidebar.cornerOpen.cornerRegionHeight
from: 1
to: 300
stepSize: 1
onValueChanged: {
Config.options.sidebar.cornerOpen.cornerRegionHeight = value;
}
}
}
}
}
ContentSection {
icon: "voting_chip"
title: Translation.tr("On-screen display")
ConfigSpinBox {
icon: "av_timer"
text: Translation.tr("Timeout (ms)")
value: Config.options.osd.timeout
from: 100
to: 3000
stepSize: 100
onValueChanged: {
Config.options.osd.timeout = value;
}
}
}
ContentSection {
icon: "overview_key"
title: Translation.tr("Overview")
ConfigSwitch {
buttonIcon: "check"
text: Translation.tr("Enable")
checked: Config.options.overview.enable
onCheckedChanged: {
Config.options.overview.enable = checked;
}
}
ConfigSpinBox {
icon: "loupe"
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 {
icon: "splitscreen_bottom"
text: Translation.tr("Rows")
value: Config.options.overview.rows
from: 1
to: 20
stepSize: 1
onValueChanged: {
Config.options.overview.rows = value;
}
}
ConfigSpinBox {
icon: "splitscreen_right"
text: Translation.tr("Columns")
value: Config.options.overview.columns
from: 1
to: 20
stepSize: 1
onValueChanged: {
Config.options.overview.columns = value;
}
}
}
}
ContentSection {
icon: "screenshot_frame_2"
title: Translation.tr("Screenshot tool")
ConfigSwitch {
buttonIcon: "nearby"
text: Translation.tr('Show regions of potential interest')
checked: Config.options.screenshotTool.showContentRegions
onCheckedChanged: {
Config.options.screenshotTool.showContentRegions = checked;
}
StyledToolTip {
text: 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.")
}
}
}
}