1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -05:00

settings: mecha re-organization

This commit is contained in:
bbedward
2025-12-03 17:25:40 -05:00
parent 2c7f24a913
commit 788da62777
40 changed files with 10034 additions and 9580 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -19,15 +19,14 @@ FocusScope {
color: "transparent"
Loader {
id: personalizationLoader
id: wallpaperLoader
anchors.fill: parent
active: root.currentIndex === 0
visible: active
focus: active
sourceComponent: Component {
PersonalizationTab {
WallpaperTab {
parentModal: root.parentModal
}
}
@@ -41,7 +40,6 @@ FocusScope {
Loader {
id: timeWeatherLoader
anchors.fill: parent
active: root.currentIndex === 1
visible: active
@@ -58,7 +56,6 @@ FocusScope {
Loader {
id: keybindsLoader
anchors.fill: parent
active: root.currentIndex === 2
visible: active
@@ -77,7 +74,6 @@ FocusScope {
Loader {
id: topBarLoader
anchors.fill: parent
active: root.currentIndex === 3
visible: active
@@ -95,14 +91,13 @@ FocusScope {
}
Loader {
id: widgetsLoader
id: workspacesLoader
anchors.fill: parent
active: root.currentIndex === 4
visible: active
focus: active
sourceComponent: WidgetTweaksTab {}
sourceComponent: WorkspacesTab {}
onActiveChanged: {
if (active && item) {
@@ -113,7 +108,6 @@ FocusScope {
Loader {
id: dockLoader
anchors.fill: parent
active: root.currentIndex === 5
visible: active
@@ -132,7 +126,6 @@ FocusScope {
Loader {
id: displaysLoader
anchors.fill: parent
active: root.currentIndex === 6
visible: active
@@ -149,7 +142,6 @@ FocusScope {
Loader {
id: networkLoader
anchors.fill: parent
active: root.currentIndex === 7
visible: active
@@ -166,7 +158,6 @@ FocusScope {
Loader {
id: printerLoader
anchors.fill: parent
active: root.currentIndex === 8
visible: active
@@ -183,7 +174,6 @@ FocusScope {
Loader {
id: launcherLoader
anchors.fill: parent
active: root.currentIndex === 9
visible: active
@@ -200,7 +190,6 @@ FocusScope {
Loader {
id: themeColorsLoader
anchors.fill: parent
active: root.currentIndex === 10
visible: active
@@ -216,14 +205,13 @@ FocusScope {
}
Loader {
id: powerLoader
id: lockScreenLoader
anchors.fill: parent
active: root.currentIndex === 11
visible: active
focus: active
sourceComponent: PowerSettings {}
sourceComponent: LockScreenTab {}
onActiveChanged: {
if (active && item) {
@@ -234,7 +222,6 @@ FocusScope {
Loader {
id: pluginsLoader
anchors.fill: parent
active: root.currentIndex === 12
visible: active
@@ -253,7 +240,6 @@ FocusScope {
Loader {
id: aboutLoader
anchors.fill: parent
active: root.currentIndex === 13
visible: active
@@ -267,5 +253,133 @@ FocusScope {
}
}
}
Loader {
id: typographyMotionLoader
anchors.fill: parent
active: root.currentIndex === 14
visible: active
focus: active
sourceComponent: TypographyMotionTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: soundsLoader
anchors.fill: parent
active: root.currentIndex === 15
visible: active
focus: active
sourceComponent: SoundsTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: mediaPlayerLoader
anchors.fill: parent
active: root.currentIndex === 16
visible: active
focus: active
sourceComponent: MediaPlayerTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: notificationsLoader
anchors.fill: parent
active: root.currentIndex === 17
visible: active
focus: active
sourceComponent: NotificationsTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: osdLoader
anchors.fill: parent
active: root.currentIndex === 18
visible: active
focus: active
sourceComponent: OSDTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: runningAppsLoader
anchors.fill: parent
active: root.currentIndex === 19
visible: active
focus: active
sourceComponent: RunningAppsTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: systemUpdaterLoader
anchors.fill: parent
active: root.currentIndex === 20
visible: active
focus: active
sourceComponent: SystemUpdaterTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: powerSleepLoader
anchors.fill: parent
active: root.currentIndex === 21
visible: active
focus: active
sourceComponent: PowerSleepTab {}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
}
}

View File

@@ -41,7 +41,7 @@ FloatingWindow {
title: I18n.tr("Settings", "settings window title")
minimumSize: Qt.size(500, 400)
implicitWidth: 800
implicitHeight: 800
implicitHeight: 875
color: Theme.withAlpha(Theme.surfaceContainer, Theme.popupTransparency)
visible: false
@@ -121,29 +121,18 @@ FloatingWindow {
focus: true
Keys.onPressed: event => {
const tabCount = 13;
if (event.key === Qt.Key_Escape) {
hide();
event.accepted = true;
return;
}
if (event.key === Qt.Key_Down) {
currentTabIndex = (currentTabIndex + 1) % tabCount;
if (event.key === Qt.Key_Down || (event.key === Qt.Key_Tab && !event.modifiers)) {
sidebar.navigateNext();
event.accepted = true;
return;
}
if (event.key === Qt.Key_Up) {
currentTabIndex = (currentTabIndex - 1 + tabCount) % tabCount;
event.accepted = true;
return;
}
if (event.key === Qt.Key_Tab && !event.modifiers) {
currentTabIndex = (currentTabIndex + 1) % tabCount;
event.accepted = true;
return;
}
if (event.key === Qt.Key_Backtab || (event.key === Qt.Key_Tab && event.modifiers & Qt.ShiftModifier)) {
currentTabIndex = (currentTabIndex - 1 + tabCount) % tabCount;
if (event.key === Qt.Key_Up || event.key === Qt.Key_Backtab || (event.key === Qt.Key_Tab && event.modifiers & Qt.ShiftModifier)) {
sidebar.navigatePrevious();
event.accepted = true;
return;
}

View File

@@ -7,105 +7,324 @@ import qs.Services
import qs.Widgets
Rectangle {
id: sidebarContainer
id: root
property int currentIndex: 0
property var parentModal: null
readonly property var allSidebarItems: [
property var expandedCategories: ({})
property var autoExpandedCategories: ({})
readonly property var categoryStructure: [
{
"id": "personalization",
"text": I18n.tr("Personalization"),
"icon": "person",
"tabIndex": 0
},
{
"text": I18n.tr("Time & Weather"),
"icon": "schedule",
"tabIndex": 1
},
{
"text": I18n.tr("Keyboard Shortcuts"),
"icon": "keyboard",
"shortcutsOnly": true,
"tabIndex": 2
"icon": "palette",
"children": [
{
"text": I18n.tr("Wallpaper"),
"icon": "wallpaper",
"tabIndex": 0
},
{
"text": I18n.tr("Theme & Colors"),
"icon": "format_paint",
"tabIndex": 10
},
{
"text": I18n.tr("Typography & Motion"),
"icon": "text_fields",
"tabIndex": 14
},
{
"text": I18n.tr("Time & Weather"),
"icon": "schedule",
"tabIndex": 1
},
{
"text": I18n.tr("Sounds"),
"icon": "volume_up",
"tabIndex": 15,
"soundsOnly": true
}
]
},
{
"id": "dankbar",
"text": I18n.tr("Dank Bar"),
"icon": "toolbar",
"tabIndex": 3
},
{
"text": I18n.tr("Widgets"),
"icon": "widgets",
"tabIndex": 4
"id": "workspaces_widgets",
"text": I18n.tr("Workspaces & Widgets"),
"icon": "dashboard",
"collapsedByDefault": true,
"children": [
{
"text": I18n.tr("Workspaces"),
"icon": "view_module",
"tabIndex": 4
},
{
"text": I18n.tr("Media Player"),
"icon": "music_note",
"tabIndex": 16
},
{
"text": I18n.tr("Notifications"),
"icon": "notifications",
"tabIndex": 17
},
{
"text": I18n.tr("On-screen Displays"),
"icon": "tune",
"tabIndex": 18
},
{
"text": I18n.tr("Running Apps"),
"icon": "apps",
"tabIndex": 19,
"hyprlandNiriOnly": true
},
{
"text": I18n.tr("System Updater"),
"icon": "refresh",
"tabIndex": 20
}
]
},
{
"text": I18n.tr("Dock"),
"icon": "dock_to_bottom",
"tabIndex": 5
"id": "dock_launcher",
"text": I18n.tr("Dock & Launcher"),
"icon": "apps",
"collapsedByDefault": true,
"children": [
{
"text": I18n.tr("Dock"),
"icon": "dock_to_bottom",
"tabIndex": 5
},
{
"text": I18n.tr("Launcher"),
"icon": "grid_view",
"tabIndex": 9
}
]
},
{
"id": "input",
"text": I18n.tr("Keyboard Shortcuts"),
"icon": "keyboard",
"tabIndex": 2,
"shortcutsOnly": true
},
{
"id": "displays",
"text": I18n.tr("Displays"),
"icon": "monitor",
"tabIndex": 6
},
{
"id": "network",
"text": I18n.tr("Network"),
"icon": "wifi",
"dmsOnly": true,
"tabIndex": 7
"tabIndex": 7,
"dmsOnly": true
},
{
"id": "printers",
"text": I18n.tr("Printers"),
"icon": "print",
"cupsOnly": true,
"tabIndex": 8
},
{
"text": I18n.tr("Launcher"),
"icon": "apps",
"tabIndex": 9
},
{
"text": I18n.tr("Theme & Colors"),
"icon": "palette",
"tabIndex": 10
"tabIndex": 8,
"cupsOnly": true
},
{
"id": "power_security",
"text": I18n.tr("Power & Security"),
"icon": "power",
"tabIndex": 11
"icon": "security",
"collapsedByDefault": true,
"children": [
{
"text": I18n.tr("Lock Screen"),
"icon": "lock",
"tabIndex": 11
},
{
"text": I18n.tr("Power & Sleep"),
"icon": "power_settings_new",
"tabIndex": 21
}
]
},
{
"id": "plugins",
"text": I18n.tr("Plugins"),
"icon": "extension",
"tabIndex": 12
},
{
"id": "separator",
"separator": true
},
{
"id": "about",
"text": I18n.tr("About"),
"icon": "info",
"tabIndex": 13
}
]
readonly property var sidebarItems: allSidebarItems.filter(item => {
function isItemVisible(item) {
if (item.dmsOnly && NetworkService.usingLegacy)
return false;
if (item.cupsOnly && !CupsService.cupsAvailable)
return false;
if (item.shortcutsOnly && !KeybindsService.available)
return false;
if (item.soundsOnly && !AudioService.soundsAvailable)
return false;
if (item.hyprlandNiriOnly && !CompositorService.isNiri && !CompositorService.isHyprland)
return false;
return true;
})
}
function hasVisibleChildren(category) {
if (!category.children)
return false;
return category.children.some(child => isItemVisible(child));
}
function isCategoryVisible(category) {
if (category.separator)
return true;
if (!isItemVisible(category))
return false;
if (category.children && !hasVisibleChildren(category))
return false;
return true;
}
function toggleCategory(categoryId) {
var newExpanded = Object.assign({}, expandedCategories);
newExpanded[categoryId] = !isCategoryExpanded(categoryId);
expandedCategories = newExpanded;
var newAutoExpanded = Object.assign({}, autoExpandedCategories);
delete newAutoExpanded[categoryId];
autoExpandedCategories = newAutoExpanded;
}
function isCategoryExpanded(categoryId) {
if (expandedCategories[categoryId] !== undefined) {
return expandedCategories[categoryId];
}
var category = categoryStructure.find(cat => cat.id === categoryId);
if (category && category.collapsedByDefault) {
return false;
}
return true;
}
function isChildActive(category) {
if (!category.children)
return false;
return category.children.some(child => child.tabIndex === currentIndex);
}
function findParentCategory(tabIndex) {
for (var i = 0; i < categoryStructure.length; i++) {
var cat = categoryStructure[i];
if (cat.children) {
for (var j = 0; j < cat.children.length; j++) {
if (cat.children[j].tabIndex === tabIndex) {
return cat;
}
}
}
}
return null;
}
function autoExpandForTab(tabIndex) {
var parent = findParentCategory(tabIndex);
if (!parent)
return;
if (!isCategoryExpanded(parent.id)) {
var newExpanded = Object.assign({}, expandedCategories);
newExpanded[parent.id] = true;
expandedCategories = newExpanded;
var newAutoExpanded = Object.assign({}, autoExpandedCategories);
newAutoExpanded[parent.id] = true;
autoExpandedCategories = newAutoExpanded;
}
}
function autoCollapseIfNeeded(oldTabIndex, newTabIndex) {
var oldParent = findParentCategory(oldTabIndex);
var newParent = findParentCategory(newTabIndex);
if (oldParent && oldParent !== newParent && autoExpandedCategories[oldParent.id]) {
var newExpanded = Object.assign({}, expandedCategories);
newExpanded[oldParent.id] = false;
expandedCategories = newExpanded;
var newAutoExpanded = Object.assign({}, autoExpandedCategories);
delete newAutoExpanded[oldParent.id];
autoExpandedCategories = newAutoExpanded;
}
}
function navigateNext() {
const currentItemIndex = sidebarItems.findIndex(item => item.tabIndex === currentIndex);
const nextIndex = (currentItemIndex + 1) % sidebarItems.length;
currentIndex = sidebarItems[nextIndex].tabIndex;
var flatItems = getFlatNavigableItems();
var currentPos = flatItems.findIndex(item => item.tabIndex === currentIndex);
var oldIndex = currentIndex;
if (currentPos === -1) {
currentIndex = flatItems[0]?.tabIndex ?? 0;
} else {
var nextPos = (currentPos + 1) % flatItems.length;
currentIndex = flatItems[nextPos].tabIndex;
}
autoCollapseIfNeeded(oldIndex, currentIndex);
autoExpandForTab(currentIndex);
}
function navigatePrevious() {
const currentItemIndex = sidebarItems.findIndex(item => item.tabIndex === currentIndex);
const prevIndex = (currentItemIndex - 1 + sidebarItems.length) % sidebarItems.length;
currentIndex = sidebarItems[prevIndex].tabIndex;
var flatItems = getFlatNavigableItems();
var currentPos = flatItems.findIndex(item => item.tabIndex === currentIndex);
var oldIndex = currentIndex;
if (currentPos === -1) {
currentIndex = flatItems[0]?.tabIndex ?? 0;
} else {
var prevPos = (currentPos - 1 + flatItems.length) % flatItems.length;
currentIndex = flatItems[prevPos].tabIndex;
}
autoCollapseIfNeeded(oldIndex, currentIndex);
autoExpandForTab(currentIndex);
}
function getFlatNavigableItems() {
var items = [];
for (var i = 0; i < categoryStructure.length; i++) {
var cat = categoryStructure[i];
if (cat.separator || !isCategoryVisible(cat))
continue;
if (cat.tabIndex !== undefined && !cat.children) {
items.push(cat);
}
if (cat.children) {
for (var j = 0; j < cat.children.length; j++) {
var child = cat.children[j];
if (isItemVisible(child)) {
items.push(child);
}
}
}
}
return items;
}
width: 270
@@ -120,17 +339,16 @@ Rectangle {
Column {
id: sidebarColumn
width: parent.width
leftPadding: Theme.spacingS
rightPadding: Theme.spacingS
bottomPadding: Theme.spacingL
topPadding: Theme.spacingM + 2
spacing: Theme.spacingXS
spacing: 2
ProfileSection {
width: parent.width - parent.leftPadding - parent.rightPadding
parentModal: sidebarContainer.parentModal
parentModal: root.parentModal
}
Rectangle {
@@ -142,62 +360,194 @@ Rectangle {
Item {
width: parent.width - parent.leftPadding - parent.rightPadding
height: Theme.spacingL
height: Theme.spacingM
}
Repeater {
id: sidebarRepeater
model: root.categoryStructure
model: sidebarContainer.sidebarItems
delegate: Rectangle {
delegate: Column {
id: categoryDelegate
required property int index
required property var modelData
property bool isActive: sidebarContainer.currentIndex === modelData.tabIndex
width: parent.width - parent.leftPadding - parent.rightPadding
height: 44
radius: Theme.cornerRadius
color: isActive ? Theme.primary : tabMouseArea.containsMouse ? Theme.surfaceHover : "transparent"
visible: root.isCategoryVisible(modelData)
spacing: 2
Row {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingM
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.15
visible: categoryDelegate.modelData.separator === true
}
DankIcon {
name: modelData.icon || ""
size: Theme.iconSize - 2
color: parent.parent.isActive ? Theme.primaryText : Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
Item {
width: parent.width
height: Theme.spacingS
visible: categoryDelegate.modelData.separator === true
}
Rectangle {
id: categoryRow
width: parent.width
height: 40
radius: Theme.cornerRadius
visible: categoryDelegate.modelData.separator !== true
color: {
var hasTab = categoryDelegate.modelData.tabIndex !== undefined && !categoryDelegate.modelData.children;
var isActive = hasTab && root.currentIndex === categoryDelegate.modelData.tabIndex;
if (isActive)
return Theme.primary;
if (categoryMouseArea.containsMouse)
return Theme.surfaceHover;
return "transparent";
}
StyledText {
text: modelData.text || ""
font.pixelSize: Theme.fontSizeMedium
color: parent.parent.isActive ? Theme.primaryText : Theme.surfaceText
font.weight: parent.parent.isActive ? Font.Medium : Font.Normal
Row {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
anchors.right: parent.right
anchors.rightMargin: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingM
DankIcon {
name: categoryDelegate.modelData.icon || ""
size: Theme.iconSize - 2
color: {
var hasTab = categoryDelegate.modelData.tabIndex !== undefined && !categoryDelegate.modelData.children;
var isActive = hasTab && root.currentIndex === categoryDelegate.modelData.tabIndex;
return isActive ? Theme.primaryText : Theme.surfaceText;
}
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: categoryDelegate.modelData.text || ""
font.pixelSize: Theme.fontSizeMedium
font.weight: {
var hasTab = categoryDelegate.modelData.tabIndex !== undefined && !categoryDelegate.modelData.children;
var isActive = hasTab && root.currentIndex === categoryDelegate.modelData.tabIndex;
var childActive = root.isChildActive(categoryDelegate.modelData);
return (isActive || childActive) ? Font.Medium : Font.Normal;
}
color: {
var hasTab = categoryDelegate.modelData.tabIndex !== undefined && !categoryDelegate.modelData.children;
var isActive = hasTab && root.currentIndex === categoryDelegate.modelData.tabIndex;
return isActive ? Theme.primaryText : Theme.surfaceText;
}
anchors.verticalCenter: parent.verticalCenter
width: parent.width - Theme.iconSize - Theme.spacingM - (categoryDelegate.modelData.children ? expandIcon.width + Theme.spacingS : 0)
elide: Text.ElideRight
}
DankIcon {
id: expandIcon
name: root.isCategoryExpanded(categoryDelegate.modelData.id) ? "expand_less" : "expand_more"
size: Theme.iconSize - 4
color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter
visible: categoryDelegate.modelData.children !== undefined && categoryDelegate.modelData.children.length > 0
}
}
MouseArea {
id: categoryMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
if (categoryDelegate.modelData.children) {
root.toggleCategory(categoryDelegate.modelData.id);
} else if (categoryDelegate.modelData.tabIndex !== undefined) {
root.currentIndex = categoryDelegate.modelData.tabIndex;
}
}
}
Behavior on color {
ColorAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
}
MouseArea {
id: tabMouseArea
Column {
id: childrenColumn
width: parent.width
spacing: 2
visible: categoryDelegate.modelData.children !== undefined && root.isCategoryExpanded(categoryDelegate.modelData.id)
clip: true
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: () => {
sidebarContainer.currentIndex = modelData.tabIndex;
}
}
Repeater {
model: categoryDelegate.modelData.children || []
Behavior on color {
ColorAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
delegate: Rectangle {
id: childDelegate
required property int index
required property var modelData
width: childrenColumn.width
height: 36
radius: Theme.cornerRadius
visible: root.isItemVisible(modelData)
color: {
var isActive = root.currentIndex === modelData.tabIndex;
if (isActive)
return Theme.primary;
if (childMouseArea.containsMouse)
return Theme.surfaceHover;
return "transparent";
}
Row {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingL + Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingM
DankIcon {
name: childDelegate.modelData.icon || ""
size: Theme.iconSize - 4
color: {
var isActive = root.currentIndex === childDelegate.modelData.tabIndex;
return isActive ? Theme.primaryText : Theme.surfaceVariantText;
}
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: childDelegate.modelData.text || ""
font.pixelSize: Theme.fontSizeSmall + 1
font.weight: root.currentIndex === childDelegate.modelData.tabIndex ? Font.Medium : Font.Normal
color: {
var isActive = root.currentIndex === childDelegate.modelData.tabIndex;
return isActive ? Theme.primaryText : Theme.surfaceText;
}
anchors.verticalCenter: parent.verticalCenter
}
}
MouseArea {
id: childMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
root.currentIndex = childDelegate.modelData.tabIndex;
}
}
Behavior on color {
ColorAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
}
}
}
}

View File

@@ -3,6 +3,7 @@ import QtQuick.Effects
import qs.Common
import qs.Services
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: aboutTab
@@ -122,13 +123,17 @@ Item {
Row {
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingL
spacing: parent.width < 350 ? Theme.spacingM : Theme.spacingL
property bool compactLogo: parent.width < 400
property bool hideLogo: parent.width < 280
Image {
id: logoImage
visible: !parent.hideLogo
anchors.verticalCenter: parent.verticalCenter
width: 120
width: parent.compactLogo ? 80 : 120
height: width * (569.94629 / 506.50931)
fillMode: Image.PreserveAspectFit
smooth: true
@@ -148,7 +153,7 @@ Item {
Text {
anchors.verticalCenter: parent.verticalCenter
text: "DANK LINUX"
font.pixelSize: 48
font.pixelSize: parent.compactLogo ? 32 : 48
font.weight: Font.Bold
font.family: interFont.name
color: Theme.surfaceText
@@ -163,7 +168,8 @@ Item {
StyledText {
text: {
if (!SystemUpdateService.shellVersion) return "dms";
if (!SystemUpdateService.shellVersion)
return "dms";
let version = SystemUpdateService.shellVersion;
@@ -194,6 +200,82 @@ Item {
width: parent.width
}
Row {
id: resourceButtonsRow
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingS
property bool compactMode: parent.width < 400
DankButton {
id: docsButton
text: resourceButtonsRow.compactMode ? "" : I18n.tr("Docs")
iconName: "menu_book"
iconSize: 18
backgroundColor: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
textColor: Theme.surfaceText
onClicked: Qt.openUrlExternally("https://danklinux.com/docs")
onHoveredChanged: {
if (hovered)
resourceTooltip.show(resourceButtonsRow.compactMode ? I18n.tr("Docs") + " - danklinux.com/docs" : "danklinux.com/docs", docsButton, 0, 0, "bottom");
else
resourceTooltip.hide();
}
}
DankButton {
id: pluginsButton
text: resourceButtonsRow.compactMode ? "" : I18n.tr("Plugins")
iconName: "extension"
iconSize: 18
backgroundColor: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
textColor: Theme.surfaceText
onClicked: Qt.openUrlExternally("https://plugins.danklinux.com")
onHoveredChanged: {
if (hovered)
resourceTooltip.show(resourceButtonsRow.compactMode ? I18n.tr("Plugins") + " - plugins.danklinux.com" : "plugins.danklinux.com", pluginsButton, 0, 0, "bottom");
else
resourceTooltip.hide();
}
}
DankButton {
id: githubButton
text: resourceButtonsRow.compactMode ? "" : I18n.tr("GitHub")
iconName: "code"
iconSize: 18
backgroundColor: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
textColor: Theme.surfaceText
onClicked: Qt.openUrlExternally("https://github.com/AvengeMedia/DankMaterialShell")
onHoveredChanged: {
if (hovered)
resourceTooltip.show(resourceButtonsRow.compactMode ? "GitHub - AvengeMedia/DankMaterialShell" : "github.com/AvengeMedia/DankMaterialShell", githubButton, 0, 0, "bottom");
else
resourceTooltip.hide();
}
}
DankButton {
id: kofiButton
text: resourceButtonsRow.compactMode ? "" : I18n.tr("Ko-fi")
iconName: "favorite"
iconSize: 18
backgroundColor: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12)
textColor: Theme.primary
onClicked: Qt.openUrlExternally("https://ko-fi.com/danklinux")
onHoveredChanged: {
if (hovered)
resourceTooltip.show(resourceButtonsRow.compactMode ? I18n.tr("Ko-fi") + " - ko-fi.com/danklinux" : "ko-fi.com/danklinux", kofiButton, 0, 0, "bottom");
else
resourceTooltip.hide();
}
}
}
DankTooltipV2 {
id: resourceTooltip
}
Item {
id: communityIcons
anchors.horizontalCenter: parent.horizontalCenter
@@ -459,166 +541,6 @@ Item {
}
}
StyledRect {
width: parent.width
height: techSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Column {
id: techSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "code"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Resources")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
Grid {
width: parent.width
columns: 2
columnSpacing: Theme.spacingL
rowSpacing: Theme.spacingS
StyledText {
text: I18n.tr("Website:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: `<a href="https://danklinux.com" style="text-decoration:none; color:${Theme.primary};">danklinux.com</a>`
linkColor: Theme.primary
textFormat: Text.RichText
onLinkActivated: url => Qt.openUrlExternally(url)
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
MouseArea {
anchors.fill: parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
acceptedButtons: Qt.NoButton
propagateComposedEvents: true
}
}
StyledText {
text: I18n.tr("Plugins:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: `<a href="https://plugins.danklinux.com" style="text-decoration:none; color:${Theme.primary};">plugins.danklinux.com</a>`
linkColor: Theme.primary
textFormat: Text.RichText
onLinkActivated: url => Qt.openUrlExternally(url)
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
MouseArea {
anchors.fill: parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
acceptedButtons: Qt.NoButton
propagateComposedEvents: true
}
}
StyledText {
text: I18n.tr("Github:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
Row {
spacing: 4
StyledText {
text: `<a href="https://github.com/AvengeMedia/DankMaterialShell" style="text-decoration:none; color:${Theme.primary};">DankMaterialShell</a>`
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
linkColor: Theme.primary
textFormat: Text.RichText
onLinkActivated: url => Qt.openUrlExternally(url)
anchors.verticalCenter: parent.verticalCenter
MouseArea {
anchors.fill: parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
acceptedButtons: Qt.NoButton
propagateComposedEvents: true
}
}
StyledText {
text: I18n.tr("- Support Us With a Star ⭐")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter
}
}
StyledText {
text: I18n.tr("System Monitoring:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
Row {
spacing: 4
StyledText {
text: `<a href="https://github.com/AvengeMedia/dgop" style="text-decoration:none; color:${Theme.primary};">dgop</a>`
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
linkColor: Theme.primary
textFormat: Text.RichText
onLinkActivated: url => Qt.openUrlExternally(url)
anchors.verticalCenter: parent.verticalCenter
MouseArea {
anchors.fill: parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
acceptedButtons: Qt.NoButton
propagateComposedEvents: true
}
}
StyledText {
text: I18n.tr("- Stateless System Monitoring")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter
}
}
}
}
}
StyledRect {
visible: DMSService.isConnected
width: parent.width
@@ -772,57 +694,20 @@ Item {
}
}
// Support Section
StyledRect {
width: parent.width
height: supportSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Row {
id: supportSection
StyledText {
anchors.horizontalCenter: parent.horizontalCenter
text: `<a href="https://github.com/AvengeMedia/DankMaterialShell/blob/master/LICENSE" style="text-decoration:none; color:${Theme.surfaceVariantText};">MIT License</a>`
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
textFormat: Text.RichText
wrapMode: Text.NoWrap
onLinkActivated: url => Qt.openUrlExternally(url)
MouseArea {
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
spacing: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
DankIcon {
name: "volunteer_activism"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Support Development")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
Item {
width: parent.width - parent.spacing - kofiButton.width - supportSection.children[0].width
height: 1
}
DankButton {
id: kofiButton
text: I18n.tr("Donate on Ko-fi")
iconName: "favorite"
iconSize: 20
backgroundColor: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08)
textColor: Theme.primary
anchors.verticalCenter: parent.verticalCenter
onClicked: Qt.openUrlExternally("https://ko-fi.com/danklinux")
}
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
acceptedButtons: Qt.NoButton
propagateComposedEvents: true
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -120,12 +120,10 @@ Item {
function onBindSaved(key) {
keybindsTab._savedScrollY = flickable.contentY;
keybindsTab._preserveScroll = true;
keybindsTab._editingKey = key;
}
function onBindRemoved(key) {
keybindsTab._savedScrollY = flickable.contentY;
keybindsTab._preserveScroll = true;
keybindsTab._editingKey = "";
}
}
@@ -597,15 +595,50 @@ Item {
anchors.horizontalCenter: parent.horizontalCenter
bindData: modelData
isExpanded: keybindsTab.expandedKey === modelData.action
restoreKey: isExpanded ? keybindsTab._editingKey : ""
panelWindow: keybindsTab.parentModal
onToggleExpand: keybindsTab.toggleExpanded(modelData.action)
onSaveBind: (originalKey, newData) => {
KeybindsService.saveBind(originalKey, newData);
keybindsTab._editingKey = newData.key;
keybindsTab.expandedKey = modelData.action;
}
onRemoveBind: key => KeybindsService.removeBind(key)
onRestoreKeyConsumed: keybindsTab._editingKey = ""
onRemoveBind: key => {
const remainingKey = bindItem.keys.find(k => k.key !== key)?.key ?? "";
KeybindsService.removeBind(key);
keybindsTab._editingKey = remainingKey;
}
onIsExpandedChanged: {
if (!isExpanded || !keybindsTab._editingKey)
return;
const keyExists = keys.some(k => k.key === keybindsTab._editingKey);
if (keyExists) {
restoreKey = keybindsTab._editingKey;
keybindsTab._editingKey = "";
}
}
onKeysChanged: {
if (!isExpanded || !keybindsTab._editingKey)
return;
const keyExists = keys.some(k => k.key === keybindsTab._editingKey);
if (keyExists) {
restoreKey = keybindsTab._editingKey;
keybindsTab._editingKey = "";
}
}
Connections {
target: keybindsTab
function on_EditingKeyChanged() {
if (!bindItem.isExpanded || !keybindsTab._editingKey)
return;
const keyExists = bindItem.keys.some(k => k.key === keybindsTab._editingKey);
if (keyExists) {
bindItem.restoreKey = keybindsTab._editingKey;
keybindsTab._editingKey = "";
}
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,183 @@
import QtQuick
import Quickshell
import qs.Common
import qs.Services
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "lock"
title: I18n.tr("Lock Screen")
SettingsToggleRow {
text: I18n.tr("Show Power Actions")
description: I18n.tr("Show power, restart, and logout buttons on the lock screen")
checked: SettingsData.lockScreenShowPowerActions
onToggled: checked => SettingsData.set("lockScreenShowPowerActions", checked)
}
StyledText {
text: I18n.tr("loginctl not available - lock integration requires DMS socket connection")
font.pixelSize: Theme.fontSizeSmall
color: Theme.warning
visible: !SessionService.loginctlAvailable
width: parent.width
wrapMode: Text.Wrap
}
SettingsToggleRow {
text: I18n.tr("Enable loginctl lock integration")
description: I18n.tr("Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen")
checked: SessionService.loginctlAvailable && SettingsData.loginctlLockIntegration
enabled: SessionService.loginctlAvailable
onToggled: checked => {
if (!SessionService.loginctlAvailable)
return;
SettingsData.set("loginctlLockIntegration", checked);
}
}
SettingsToggleRow {
text: I18n.tr("Lock before suspend")
description: I18n.tr("Automatically lock the screen when the system prepares to suspend")
checked: SettingsData.lockBeforeSuspend
visible: SessionService.loginctlAvailable && SettingsData.loginctlLockIntegration
onToggled: checked => SettingsData.set("lockBeforeSuspend", checked)
}
SettingsToggleRow {
text: I18n.tr("Enable fingerprint authentication")
description: I18n.tr("Use fingerprint reader for lock screen authentication (requires enrolled fingerprints)")
checked: SettingsData.enableFprint
visible: SettingsData.fprintdAvailable
onToggled: checked => SettingsData.set("enableFprint", checked)
}
}
SettingsCard {
width: parent.width
iconName: "monitor"
title: I18n.tr("Lock Screen Display")
visible: Quickshell.screens.length > 1
StyledText {
text: I18n.tr("Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
wrapMode: Text.Wrap
}
SettingsDropdownRow {
id: lockScreenMonitorDropdown
text: I18n.tr("Active Lock Screen Monitor")
options: {
var opts = [I18n.tr("All Monitors")];
var screens = Quickshell.screens;
for (var i = 0; i < screens.length; i++) {
opts.push(SettingsData.getScreenDisplayName(screens[i]));
}
return opts;
}
Component.onCompleted: {
if (SettingsData.lockScreenActiveMonitor === "all") {
currentValue = I18n.tr("All Monitors");
return;
}
var screens = Quickshell.screens;
for (var i = 0; i < screens.length; i++) {
if (screens[i].name === SettingsData.lockScreenActiveMonitor) {
currentValue = SettingsData.getScreenDisplayName(screens[i]);
return;
}
}
currentValue = I18n.tr("All Monitors");
}
onValueChanged: value => {
if (value === I18n.tr("All Monitors")) {
SettingsData.set("lockScreenActiveMonitor", "all");
return;
}
var screens = Quickshell.screens;
for (var i = 0; i < screens.length; i++) {
if (SettingsData.getScreenDisplayName(screens[i]) === value) {
SettingsData.set("lockScreenActiveMonitor", screens[i].name);
return;
}
}
}
}
Row {
width: parent.width
spacing: Theme.spacingM
visible: SettingsData.lockScreenActiveMonitor !== "all"
Column {
width: parent.width - inactiveColorPreview.width - Theme.spacingM
spacing: Theme.spacingXS
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: I18n.tr("Inactive Monitor Color")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
}
StyledText {
text: I18n.tr("Color displayed on monitors without the lock screen")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
wrapMode: Text.Wrap
}
}
Rectangle {
id: inactiveColorPreview
width: 48
height: 48
radius: Theme.cornerRadius
color: SettingsData.lockScreenInactiveColor
border.color: Theme.outline
border.width: 1
anchors.verticalCenter: parent.verticalCenter
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
if (!PopoutService.colorPickerModal)
return;
PopoutService.colorPickerModal.selectedColor = SettingsData.lockScreenInactiveColor;
PopoutService.colorPickerModal.pickerTitle = I18n.tr("Inactive Monitor Color");
PopoutService.colorPickerModal.onColorSelectedCallback = function (selectedColor) {
SettingsData.set("lockScreenInactiveColor", selectedColor);
};
PopoutService.colorPickerModal.show();
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,42 @@
import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "music_note"
title: I18n.tr("Media Player Settings")
SettingsToggleRow {
text: I18n.tr("Wave Progress Bars")
description: I18n.tr("Use animated wave progress bars for media playback")
checked: SettingsData.waveProgressEnabled
onToggled: checked => SettingsData.set("waveProgressEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Scroll song title")
description: I18n.tr("Scroll title if it doesn't fit in widget")
checked: SettingsData.scrollTitleEnabled
onToggled: checked => SettingsData.set("scrollTitleEnabled", checked)
}
}
}
}
}

View File

@@ -0,0 +1,208 @@
import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
readonly property var timeoutOptions: [
{
text: I18n.tr("Never"),
value: 0
},
{
text: I18n.tr("1 second"),
value: 1000
},
{
text: I18n.tr("3 seconds"),
value: 3000
},
{
text: I18n.tr("5 seconds"),
value: 5000
},
{
text: I18n.tr("8 seconds"),
value: 8000
},
{
text: I18n.tr("10 seconds"),
value: 10000
},
{
text: I18n.tr("15 seconds"),
value: 15000
},
{
text: I18n.tr("30 seconds"),
value: 30000
},
{
text: I18n.tr("1 minute"),
value: 60000
},
{
text: I18n.tr("2 minutes"),
value: 120000
},
{
text: I18n.tr("5 minutes"),
value: 300000
},
{
text: I18n.tr("10 minutes"),
value: 600000
}
]
function getTimeoutText(value) {
if (value === undefined || value === null || isNaN(value))
return I18n.tr("5 seconds");
for (let i = 0; i < timeoutOptions.length; i++) {
if (timeoutOptions[i].value === value)
return timeoutOptions[i].text;
}
if (value === 0)
return I18n.tr("Never");
if (value < 1000)
return value + "ms";
if (value < 60000)
return Math.round(value / 1000) + " " + I18n.tr("seconds");
return Math.round(value / 60000) + " " + I18n.tr("minutes");
}
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "notifications"
title: I18n.tr("Notification Popups")
SettingsDropdownRow {
text: I18n.tr("Popup Position")
description: I18n.tr("Choose where notification popups appear on screen")
currentValue: {
if (SettingsData.notificationPopupPosition === -1)
return "Top Center";
switch (SettingsData.notificationPopupPosition) {
case SettingsData.Position.Top:
return "Top Right";
case SettingsData.Position.Bottom:
return "Bottom Left";
case SettingsData.Position.Left:
return "Top Left";
case SettingsData.Position.Right:
return "Bottom Right";
default:
return "Top Right";
}
}
options: ["Top Right", "Top Left", "Top Center", "Bottom Right", "Bottom Left"]
onValueChanged: value => {
switch (value) {
case "Top Right":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Top);
break;
case "Top Left":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Left);
break;
case "Top Center":
SettingsData.set("notificationPopupPosition", -1);
break;
case "Bottom Right":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Right);
break;
case "Bottom Left":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Bottom);
break;
}
SettingsData.sendTestNotifications();
}
}
SettingsToggleRow {
text: I18n.tr("Notification Overlay")
description: I18n.tr("Display all priorities over fullscreen apps")
checked: SettingsData.notificationOverlayEnabled
onToggled: checked => SettingsData.set("notificationOverlayEnabled", checked)
}
}
SettingsCard {
width: parent.width
iconName: "notifications_off"
title: I18n.tr("Do Not Disturb")
SettingsToggleRow {
text: I18n.tr("Enable Do Not Disturb")
description: I18n.tr("Suppress notification popups while enabled")
checked: SessionData.doNotDisturb
onToggled: checked => SessionData.setDoNotDisturb(checked)
}
}
SettingsCard {
width: parent.width
iconName: "timer"
title: I18n.tr("Notification Timeouts")
SettingsDropdownRow {
text: I18n.tr("Low Priority")
description: I18n.tr("Timeout for low priority notifications")
currentValue: root.getTimeoutText(SettingsData.notificationTimeoutLow)
options: root.timeoutOptions.map(opt => opt.text)
onValueChanged: value => {
for (let i = 0; i < root.timeoutOptions.length; i++) {
if (root.timeoutOptions[i].text === value) {
SettingsData.set("notificationTimeoutLow", root.timeoutOptions[i].value);
break;
}
}
}
}
SettingsDropdownRow {
text: I18n.tr("Normal Priority")
description: I18n.tr("Timeout for normal priority notifications")
currentValue: root.getTimeoutText(SettingsData.notificationTimeoutNormal)
options: root.timeoutOptions.map(opt => opt.text)
onValueChanged: value => {
for (let i = 0; i < root.timeoutOptions.length; i++) {
if (root.timeoutOptions[i].text === value) {
SettingsData.set("notificationTimeoutNormal", root.timeoutOptions[i].value);
break;
}
}
}
}
SettingsDropdownRow {
text: I18n.tr("Critical Priority")
description: I18n.tr("Timeout for critical priority notifications")
currentValue: root.getTimeoutText(SettingsData.notificationTimeoutCritical)
options: root.timeoutOptions.map(opt => opt.text)
onValueChanged: value => {
for (let i = 0; i < root.timeoutOptions.length; i++) {
if (root.timeoutOptions[i].text === value) {
SettingsData.set("notificationTimeoutCritical", root.timeoutOptions[i].value);
break;
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,147 @@
import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "tune"
title: I18n.tr("On-screen Displays")
SettingsDropdownRow {
text: I18n.tr("OSD Position")
description: I18n.tr("Choose where on-screen displays appear on screen")
currentValue: {
switch (SettingsData.osdPosition) {
case SettingsData.Position.Top:
return "Top Right";
case SettingsData.Position.Left:
return "Top Left";
case SettingsData.Position.TopCenter:
return "Top Center";
case SettingsData.Position.Right:
return "Bottom Right";
case SettingsData.Position.Bottom:
return "Bottom Left";
case SettingsData.Position.BottomCenter:
return "Bottom Center";
case SettingsData.Position.LeftCenter:
return "Left Center";
case SettingsData.Position.RightCenter:
return "Right Center";
default:
return "Bottom Center";
}
}
options: ["Top Right", "Top Left", "Top Center", "Bottom Right", "Bottom Left", "Bottom Center", "Left Center", "Right Center"]
onValueChanged: value => {
switch (value) {
case "Top Right":
SettingsData.set("osdPosition", SettingsData.Position.Top);
break;
case "Top Left":
SettingsData.set("osdPosition", SettingsData.Position.Left);
break;
case "Top Center":
SettingsData.set("osdPosition", SettingsData.Position.TopCenter);
break;
case "Bottom Right":
SettingsData.set("osdPosition", SettingsData.Position.Right);
break;
case "Bottom Left":
SettingsData.set("osdPosition", SettingsData.Position.Bottom);
break;
case "Bottom Center":
SettingsData.set("osdPosition", SettingsData.Position.BottomCenter);
break;
case "Left Center":
SettingsData.set("osdPosition", SettingsData.Position.LeftCenter);
break;
case "Right Center":
SettingsData.set("osdPosition", SettingsData.Position.RightCenter);
break;
}
}
}
SettingsToggleRow {
text: I18n.tr("Always Show Percentage")
description: I18n.tr("Display volume and brightness percentage values in OSD popups")
checked: SettingsData.osdAlwaysShowValue
onToggled: checked => SettingsData.set("osdAlwaysShowValue", checked)
}
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.15
}
SettingsToggleRow {
text: I18n.tr("Volume")
description: I18n.tr("Show on-screen display when volume changes")
checked: SettingsData.osdVolumeEnabled
onToggled: checked => SettingsData.set("osdVolumeEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Media Volume")
description: I18n.tr("Show on-screen display when media player volume changes")
checked: SettingsData.osdMediaVolumeEnabled
onToggled: checked => SettingsData.set("osdMediaVolumeEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Brightness")
description: I18n.tr("Show on-screen display when brightness changes")
checked: SettingsData.osdBrightnessEnabled
onToggled: checked => SettingsData.set("osdBrightnessEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Idle Inhibitor")
description: I18n.tr("Show on-screen display when idle inhibitor state changes")
checked: SettingsData.osdIdleInhibitorEnabled
onToggled: checked => SettingsData.set("osdIdleInhibitorEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Microphone Mute")
description: I18n.tr("Show on-screen display when microphone is muted/unmuted")
checked: SettingsData.osdMicMuteEnabled
onToggled: checked => SettingsData.set("osdMicMuteEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Caps Lock")
description: I18n.tr("Show on-screen display when caps lock state changes")
checked: SettingsData.osdCapsLockEnabled
onToggled: checked => SettingsData.set("osdCapsLockEnabled", checked)
}
SettingsToggleRow {
text: I18n.tr("Power Profile")
description: I18n.tr("Show on-screen display when power profile changes")
checked: SettingsData.osdPowerProfileEnabled
onToggled: checked => SettingsData.set("osdPowerProfileEnabled", checked)
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,459 @@
import QtQuick
import qs.Common
import qs.Services
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
readonly property var timeoutOptions: ["Never", "1 minute", "2 minutes", "3 minutes", "5 minutes", "10 minutes", "15 minutes", "20 minutes", "30 minutes", "1 hour", "1 hour 30 minutes", "2 hours", "3 hours"]
readonly property var timeoutValues: [0, 60, 120, 180, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 10800]
function getTimeoutIndex(timeout) {
var idx = timeoutValues.indexOf(timeout);
return idx >= 0 ? idx : 0;
}
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "schedule"
title: I18n.tr("Idle Settings")
Row {
width: parent.width
spacing: Theme.spacingM
StyledText {
text: I18n.tr("Power source")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
visible: BatteryService.batteryAvailable
}
Item {
width: Theme.spacingS
height: 1
visible: BatteryService.batteryAvailable
}
DankButtonGroup {
id: powerCategory
anchors.verticalCenter: parent.verticalCenter
visible: BatteryService.batteryAvailable
model: ["AC Power", "Battery"]
currentIndex: 0
selectionMode: "single"
checkEnabled: false
}
}
SettingsToggleRow {
text: I18n.tr("Prevent idle for media")
description: I18n.tr("Inhibit idle timeout when audio or video is playing")
checked: SettingsData.preventIdleForMedia
visible: IdleService.idleMonitorAvailable
onToggled: checked => SettingsData.set("preventIdleForMedia", checked)
}
SettingsToggleRow {
text: I18n.tr("Fade to lock screen")
description: I18n.tr("Gradually fade the screen before locking with a configurable grace period")
checked: SettingsData.fadeToLockEnabled
onToggled: checked => SettingsData.set("fadeToLockEnabled", checked)
}
SettingsDropdownRow {
id: fadeGracePeriodDropdown
property var periodOptions: ["1 second", "2 seconds", "3 seconds", "4 seconds", "5 seconds", "10 seconds", "15 seconds", "20 seconds", "30 seconds"]
property var periodValues: [1, 2, 3, 4, 5, 10, 15, 20, 30]
text: I18n.tr("Fade grace period")
options: periodOptions
visible: SettingsData.fadeToLockEnabled
enabled: SettingsData.fadeToLockEnabled
Component.onCompleted: {
const currentPeriod = SettingsData.fadeToLockGracePeriod;
const index = periodValues.indexOf(currentPeriod);
currentValue = index >= 0 ? periodOptions[index] : "5 seconds";
}
onValueChanged: value => {
const index = periodOptions.indexOf(value);
if (index < 0)
return;
SettingsData.set("fadeToLockGracePeriod", periodValues[index]);
}
}
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.15
}
SettingsDropdownRow {
id: lockDropdown
text: I18n.tr("Automatically lock after")
options: root.timeoutOptions
Connections {
target: powerCategory
function onCurrentIndexChanged() {
const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acLockTimeout : SettingsData.batteryLockTimeout;
lockDropdown.currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
}
}
Component.onCompleted: {
const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acLockTimeout : SettingsData.batteryLockTimeout;
currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
}
onValueChanged: value => {
const index = root.timeoutOptions.indexOf(value);
if (index < 0)
return;
const timeout = root.timeoutValues[index];
if (powerCategory.currentIndex === 0) {
SettingsData.set("acLockTimeout", timeout);
} else {
SettingsData.set("batteryLockTimeout", timeout);
}
}
}
SettingsDropdownRow {
id: monitorDropdown
text: I18n.tr("Turn off monitors after")
options: root.timeoutOptions
Connections {
target: powerCategory
function onCurrentIndexChanged() {
const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acMonitorTimeout : SettingsData.batteryMonitorTimeout;
monitorDropdown.currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
}
}
Component.onCompleted: {
const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acMonitorTimeout : SettingsData.batteryMonitorTimeout;
currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
}
onValueChanged: value => {
const index = root.timeoutOptions.indexOf(value);
if (index < 0)
return;
const timeout = root.timeoutValues[index];
if (powerCategory.currentIndex === 0) {
SettingsData.set("acMonitorTimeout", timeout);
} else {
SettingsData.set("batteryMonitorTimeout", timeout);
}
}
}
SettingsDropdownRow {
id: suspendDropdown
text: I18n.tr("Suspend system after")
options: root.timeoutOptions
Connections {
target: powerCategory
function onCurrentIndexChanged() {
const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acSuspendTimeout : SettingsData.batterySuspendTimeout;
suspendDropdown.currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
}
}
Component.onCompleted: {
const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acSuspendTimeout : SettingsData.batterySuspendTimeout;
currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
}
onValueChanged: value => {
const index = root.timeoutOptions.indexOf(value);
if (index < 0)
return;
const timeout = root.timeoutValues[index];
if (powerCategory.currentIndex === 0) {
SettingsData.set("acSuspendTimeout", timeout);
} else {
SettingsData.set("batterySuspendTimeout", timeout);
}
}
}
Column {
width: parent.width
spacing: Theme.spacingS
visible: SessionService.hibernateSupported
StyledText {
text: I18n.tr("Suspend behavior")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
leftPadding: Theme.spacingM
}
DankButtonGroup {
id: suspendBehaviorSelector
anchors.horizontalCenter: parent.horizontalCenter
model: ["Suspend", "Hibernate", "Suspend then Hibernate"]
selectionMode: "single"
checkEnabled: false
Connections {
target: powerCategory
function onCurrentIndexChanged() {
const behavior = powerCategory.currentIndex === 0 ? SettingsData.acSuspendBehavior : SettingsData.batterySuspendBehavior;
suspendBehaviorSelector.currentIndex = behavior;
}
}
Component.onCompleted: {
const behavior = powerCategory.currentIndex === 0 ? SettingsData.acSuspendBehavior : SettingsData.batterySuspendBehavior;
currentIndex = behavior;
}
onSelectionChanged: (index, selected) => {
if (!selected)
return;
if (powerCategory.currentIndex === 0) {
SettingsData.set("acSuspendBehavior", index);
} else {
SettingsData.set("batterySuspendBehavior", index);
}
}
}
}
StyledText {
text: I18n.tr("Idle monitoring not supported - requires newer Quickshell version")
font.pixelSize: Theme.fontSizeSmall
color: Theme.error
anchors.horizontalCenter: parent.horizontalCenter
visible: !IdleService.idleMonitorAvailable
}
}
SettingsCard {
width: parent.width
iconName: "tune"
title: I18n.tr("Power Menu Customization")
StyledText {
text: I18n.tr("Customize which actions appear in the power menu")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
wrapMode: Text.Wrap
}
SettingsToggleRow {
text: I18n.tr("Use Grid Layout")
description: I18n.tr("Display power menu actions in a grid instead of a list")
checked: SettingsData.powerMenuGridLayout
onToggled: checked => SettingsData.set("powerMenuGridLayout", checked)
}
SettingsDropdownRow {
id: defaultActionDropdown
text: I18n.tr("Default selected action")
options: ["Reboot", "Log Out", "Power Off", "Lock", "Suspend", "Restart DMS", "Hibernate"]
property var actionValues: ["reboot", "logout", "poweroff", "lock", "suspend", "restart", "hibernate"]
Component.onCompleted: {
const currentAction = SettingsData.powerMenuDefaultAction || "logout";
const index = actionValues.indexOf(currentAction);
currentValue = index >= 0 ? options[index] : "Log Out";
}
onValueChanged: value => {
const index = options.indexOf(value);
if (index < 0)
return;
SettingsData.set("powerMenuDefaultAction", actionValues[index]);
}
}
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.15
}
Column {
width: parent.width
spacing: Theme.spacingS
Repeater {
model: [
{
key: "reboot",
label: I18n.tr("Show Reboot")
},
{
key: "logout",
label: I18n.tr("Show Log Out")
},
{
key: "poweroff",
label: I18n.tr("Show Power Off")
},
{
key: "lock",
label: I18n.tr("Show Lock")
},
{
key: "suspend",
label: I18n.tr("Show Suspend")
},
{
key: "restart",
label: I18n.tr("Show Restart DMS"),
desc: I18n.tr("Restart the DankMaterialShell")
},
{
key: "hibernate",
label: I18n.tr("Show Hibernate"),
desc: I18n.tr("Only visible if hibernate is supported by your system"),
hibernate: true
}
]
SettingsToggleRow {
required property var modelData
text: modelData.label
description: modelData.desc || ""
visible: !modelData.hibernate || SessionService.hibernateSupported
checked: SettingsData.powerMenuActions.includes(modelData.key)
onToggled: checked => {
let actions = [...SettingsData.powerMenuActions];
if (checked && !actions.includes(modelData.key)) {
actions.push(modelData.key);
} else if (!checked) {
actions = actions.filter(a => a !== modelData.key);
}
SettingsData.set("powerMenuActions", actions);
}
}
}
}
}
SettingsCard {
width: parent.width
iconName: "check_circle"
title: I18n.tr("Power Action Confirmation")
SettingsToggleRow {
text: I18n.tr("Hold to Confirm Power Actions")
description: I18n.tr("Require holding button/key to confirm power off, restart, suspend, hibernate and logout")
checked: SettingsData.powerActionConfirm
onToggled: checked => SettingsData.set("powerActionConfirm", checked)
}
SettingsSliderRow {
text: I18n.tr("Hold Duration")
description: I18n.tr("How long to hold the button to confirm the action")
minimum: 1
maximum: 10
unit: "s"
visible: SettingsData.powerActionConfirm
value: SettingsData.powerActionHoldDuration
onSliderValueChanged: newValue => SettingsData.set("powerActionHoldDuration", newValue)
}
}
SettingsCard {
width: parent.width
iconName: "developer_mode"
title: I18n.tr("Custom Power Actions")
Repeater {
model: [
{
key: "customPowerActionLock",
label: I18n.tr("Custom Lock Command"),
placeholder: "/usr/bin/myLock.sh"
},
{
key: "customPowerActionLogout",
label: I18n.tr("Custom Logout Command"),
placeholder: "/usr/bin/myLogout.sh"
},
{
key: "customPowerActionSuspend",
label: I18n.tr("Custom Suspend Command"),
placeholder: "/usr/bin/mySuspend.sh"
},
{
key: "customPowerActionHibernate",
label: I18n.tr("Custom Hibernate Command"),
placeholder: "/usr/bin/myHibernate.sh"
},
{
key: "customPowerActionReboot",
label: I18n.tr("Custom Reboot Command"),
placeholder: "/usr/bin/myReboot.sh"
},
{
key: "customPowerActionPowerOff",
label: I18n.tr("Custom Power Off Command"),
placeholder: "/usr/bin/myPowerOff.sh"
}
]
Column {
required property var modelData
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: modelData.label
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
width: parent.width
height: 48
placeholderText: modelData.placeholder
backgroundColor: Theme.withAlpha(Theme.surfaceContainerHighest, Theme.popupTransparency)
normalBorderColor: Theme.outlineMedium
focusedBorderColor: Theme.primary
Component.onCompleted: {
var val = SettingsData[modelData.key];
if (val)
text = val;
}
onTextEdited: {
SettingsData.set(modelData.key, text.trim());
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,35 @@
import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "apps"
title: I18n.tr("Running Apps Settings")
SettingsToggleRow {
text: I18n.tr("Running Apps Only In Current Workspace")
description: I18n.tr("Show only apps running in current workspace")
checked: SettingsData.runningAppsCurrentWorkspace
onToggled: checked => SettingsData.set("runningAppsCurrentWorkspace", checked)
}
}
}
}
}

View File

@@ -1,103 +0,0 @@
import QtQuick
import qs.Common
import qs.Widgets
Column {
id: root
property string title: ""
property string iconName: ""
property alias content: contentLoader.sourceComponent
property bool expanded: false
property bool collapsible: true
property bool lazyLoad: true
width: parent.width
spacing: expanded ? Theme.spacingM : 0
Component.onCompleted: {
if (!collapsible)
expanded = true;
}
MouseArea {
width: parent.width
height: headerRow.height
enabled: collapsible
hoverEnabled: collapsible
onClicked: {
if (collapsible)
expanded = !expanded;
}
Rectangle {
anchors.fill: parent
color: parent.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : "transparent"
radius: Theme.radiusS
}
Row {
id: headerRow
width: parent.width
spacing: Theme.spacingS
topPadding: Theme.spacingS
bottomPadding: Theme.spacingS
DankIcon {
name: root.collapsible ? (root.expanded ? "expand_less" : "expand_more") : root.iconName
size: Theme.iconSize - 2
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
Behavior on rotation {
NumberAnimation {
duration: Appearance.anim.durations.fast
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}
DankIcon {
name: root.iconName
size: Theme.iconSize - 4
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
visible: root.collapsible
}
StyledText {
text: root.title
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
anchors.verticalCenter: parent.verticalCenter
}
}
}
Rectangle {
width: parent.width
height: 1
color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12)
visible: expanded || !collapsible
}
Loader {
id: contentLoader
width: parent.width
active: lazyLoad ? expanded || !collapsible : true
visible: expanded || !collapsible
asynchronous: true
opacity: visible ? 1 : 0
Behavior on opacity {
NumberAnimation {
duration: Appearance.anim.durations.normal
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}
}

View File

@@ -0,0 +1,156 @@
import QtQuick
import qs.Common
import qs.Services
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
tab: "sounds"
tags: ["sound", "audio", "notification", "volume"]
title: I18n.tr("System Sounds")
iconName: SettingsData.soundsEnabled ? "volume_up" : "volume_off"
visible: AudioService.soundsAvailable
SettingsToggleRow {
tab: "sounds"
tags: ["sound", "enable", "system"]
settingKey: "soundsEnabled"
text: I18n.tr("Enable System Sounds")
description: I18n.tr("Play sounds for system events")
checked: SettingsData.soundsEnabled
onToggled: checked => SettingsData.set("soundsEnabled", checked)
}
Column {
width: parent.width
spacing: Theme.spacingM
visible: SettingsData.soundsEnabled
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.2
}
SettingsToggleRow {
tab: "sounds"
tags: ["sound", "theme", "system"]
settingKey: "useSystemSoundTheme"
visible: AudioService.gsettingsAvailable
text: I18n.tr("Use System Theme")
description: I18n.tr("Use sound theme from system settings")
checked: SettingsData.useSystemSoundTheme
onToggled: checked => SettingsData.set("useSystemSoundTheme", checked)
}
SettingsDropdownRow {
tab: "sounds"
tags: ["sound", "theme", "select"]
settingKey: "soundTheme"
visible: SettingsData.useSystemSoundTheme && AudioService.availableSoundThemes.length > 0
enabled: SettingsData.useSystemSoundTheme && AudioService.availableSoundThemes.length > 0
text: I18n.tr("Sound Theme")
description: I18n.tr("Select system sound theme")
options: AudioService.availableSoundThemes
currentValue: {
const theme = AudioService.currentSoundTheme;
if (theme && AudioService.availableSoundThemes.includes(theme))
return theme;
return AudioService.availableSoundThemes.length > 0 ? AudioService.availableSoundThemes[0] : "";
}
onValueChanged: value => {
if (value && value !== AudioService.currentSoundTheme)
AudioService.setSoundTheme(value);
}
}
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.2
visible: AudioService.gsettingsAvailable
}
SettingsToggleRow {
tab: "sounds"
tags: ["sound", "notification", "new"]
settingKey: "soundNewNotification"
text: I18n.tr("New Notification")
description: I18n.tr("Play sound when new notification arrives")
checked: SettingsData.soundNewNotification
onToggled: checked => SettingsData.set("soundNewNotification", checked)
}
SettingsToggleRow {
tab: "sounds"
tags: ["sound", "volume", "changed"]
settingKey: "soundVolumeChanged"
text: I18n.tr("Volume Changed")
description: I18n.tr("Play sound when volume is adjusted")
checked: SettingsData.soundVolumeChanged
onToggled: checked => SettingsData.set("soundVolumeChanged", checked)
}
SettingsToggleRow {
tab: "sounds"
tags: ["sound", "power", "plugged"]
settingKey: "soundPluggedIn"
visible: BatteryService.batteryAvailable
text: I18n.tr("Plugged In")
description: I18n.tr("Play sound when power cable is connected")
checked: SettingsData.soundPluggedIn
onToggled: checked => SettingsData.set("soundPluggedIn", checked)
}
}
}
Rectangle {
width: parent.width
height: notAvailableText.implicitHeight + Theme.spacingM * 2
radius: Theme.cornerRadius
color: Qt.rgba(Theme.warning.r, Theme.warning.g, Theme.warning.b, 0.12)
visible: !AudioService.soundsAvailable
Row {
anchors.fill: parent
anchors.margins: Theme.spacingM
spacing: Theme.spacingM
DankIcon {
name: "info"
size: Theme.iconSizeSmall
color: Theme.warning
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
id: notAvailableText
font.pixelSize: Theme.fontSizeSmall
text: I18n.tr("System sounds are not available. Install canberra-gtk-play for sound support.")
wrapMode: Text.WordWrap
width: parent.width - Theme.iconSizeSmall - Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
}
}
}
}
}
}

View File

@@ -0,0 +1,133 @@
import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "refresh"
title: I18n.tr("System Updater")
SettingsToggleRow {
text: I18n.tr("Use Custom Command")
description: I18n.tr("Use custom command for update your system")
checked: SettingsData.updaterUseCustomCommand
onToggled: checked => {
if (!checked) {
updaterCustomCommand.text = "";
updaterTerminalCustomClass.text = "";
SettingsData.set("updaterCustomCommand", "");
SettingsData.set("updaterTerminalAdditionalParams", "");
}
SettingsData.set("updaterUseCustomCommand", checked);
}
}
FocusScope {
width: parent.width - Theme.spacingM * 2
height: customCommandColumn.implicitHeight
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
Column {
id: customCommandColumn
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: I18n.tr("System update custom command")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
id: updaterCustomCommand
width: parent.width
height: 48
placeholderText: "myPkgMngr --sysupdate"
backgroundColor: Theme.withAlpha(Theme.surfaceContainerHighest, Theme.popupTransparency)
normalBorderColor: Theme.outlineMedium
focusedBorderColor: Theme.primary
Component.onCompleted: {
if (SettingsData.updaterCustomCommand) {
text = SettingsData.updaterCustomCommand;
}
}
onTextEdited: SettingsData.set("updaterCustomCommand", text.trim())
MouseArea {
anchors.fill: parent
onPressed: mouse => {
updaterCustomCommand.forceActiveFocus();
mouse.accepted = false;
}
}
}
}
}
FocusScope {
width: parent.width - Theme.spacingM * 2
height: terminalParamsColumn.implicitHeight
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
Column {
id: terminalParamsColumn
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: I18n.tr("Terminal custom additional parameters")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
id: updaterTerminalCustomClass
width: parent.width
height: 48
placeholderText: "-T udpClass"
backgroundColor: Theme.withAlpha(Theme.surfaceContainerHighest, Theme.popupTransparency)
normalBorderColor: Theme.outlineMedium
focusedBorderColor: Theme.primary
Component.onCompleted: {
if (SettingsData.updaterTerminalAdditionalParams) {
text = SettingsData.updaterTerminalAdditionalParams;
}
}
onTextEdited: SettingsData.set("updaterTerminalAdditionalParams", text.trim())
MouseArea {
anchors.fill: parent
onPressed: mouse => {
updaterTerminalCustomClass.forceActiveFocus();
mouse.accepted = false;
}
}
}
}
}
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,285 @@
import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
property var cachedFontFamilies: []
property var cachedMonoFamilies: []
property bool fontsEnumerated: false
function enumerateFonts() {
var fonts = [];
var availableFonts = Qt.fontFamilies();
for (var i = 0; i < availableFonts.length; i++) {
var fontName = availableFonts[i];
if (fontName.startsWith("."))
continue;
fonts.push(fontName);
}
fonts.sort();
fonts.unshift("Default");
cachedFontFamilies = fonts;
var monoFonts = [];
for (var j = 0; j < availableFonts.length; j++) {
var fontName2 = availableFonts[j];
if (fontName2.startsWith("."))
continue;
var lowerName = fontName2.toLowerCase();
if (lowerName.includes("mono") || lowerName.includes("code") || lowerName.includes("console") || lowerName.includes("terminal") || lowerName.includes("courier") || lowerName.includes("jetbrains") || lowerName.includes("fira") || lowerName.includes("hack") || lowerName.includes("source code") || lowerName.includes("cascadia")) {
monoFonts.push(fontName2);
}
}
monoFonts.sort();
monoFonts.unshift("Default");
cachedMonoFamilies = monoFonts;
}
Timer {
id: fontEnumerationTimer
interval: 50
running: false
onTriggered: {
if (fontsEnumerated)
return;
enumerateFonts();
fontsEnumerated = true;
}
}
Component.onCompleted: {
fontEnumerationTimer.start();
}
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
tab: "typography"
tags: ["font", "family", "text", "typography"]
title: I18n.tr("Typography")
iconName: "text_fields"
SettingsDropdownRow {
tab: "typography"
tags: ["font", "family", "normal", "text"]
settingKey: "fontFamily"
text: I18n.tr("Normal Font")
description: I18n.tr("Select the font family for UI text")
options: root.fontsEnumerated ? root.cachedFontFamilies : ["Default"]
currentValue: SettingsData.fontFamily === Theme.defaultFontFamily ? "Default" : (SettingsData.fontFamily || "Default")
enableFuzzySearch: true
popupWidthOffset: 100
maxPopupHeight: 400
onValueChanged: value => {
if (value === "Default")
SettingsData.set("fontFamily", Theme.defaultFontFamily);
else
SettingsData.set("fontFamily", value);
}
}
SettingsDropdownRow {
tab: "typography"
tags: ["font", "monospace", "code", "terminal"]
settingKey: "monoFontFamily"
text: I18n.tr("Monospace Font")
description: I18n.tr("Select monospace font for process list and technical displays")
options: root.fontsEnumerated ? root.cachedMonoFamilies : ["Default"]
currentValue: SettingsData.monoFontFamily === SettingsData.defaultMonoFontFamily ? "Default" : (SettingsData.monoFontFamily || "Default")
enableFuzzySearch: true
popupWidthOffset: 100
maxPopupHeight: 400
onValueChanged: value => {
if (value === "Default")
SettingsData.set("monoFontFamily", SettingsData.defaultMonoFontFamily);
else
SettingsData.set("monoFontFamily", value);
}
}
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.15
}
SettingsDropdownRow {
tab: "typography"
tags: ["font", "weight", "bold", "light"]
settingKey: "fontWeight"
text: I18n.tr("Font Weight")
description: I18n.tr("Select font weight for UI text")
options: ["Thin", "Extra Light", "Light", "Regular", "Medium", "Demi Bold", "Bold", "Extra Bold", "Black"]
currentValue: {
switch (SettingsData.fontWeight) {
case Font.Thin:
return "Thin";
case Font.ExtraLight:
return "Extra Light";
case Font.Light:
return "Light";
case Font.Normal:
return "Regular";
case Font.Medium:
return "Medium";
case Font.DemiBold:
return "Demi Bold";
case Font.Bold:
return "Bold";
case Font.ExtraBold:
return "Extra Bold";
case Font.Black:
return "Black";
default:
return "Regular";
}
}
onValueChanged: value => {
var weight;
switch (value) {
case "Thin":
weight = Font.Thin;
break;
case "Extra Light":
weight = Font.ExtraLight;
break;
case "Light":
weight = Font.Light;
break;
case "Regular":
weight = Font.Normal;
break;
case "Medium":
weight = Font.Medium;
break;
case "Demi Bold":
weight = Font.DemiBold;
break;
case "Bold":
weight = Font.Bold;
break;
case "Extra Bold":
weight = Font.ExtraBold;
break;
case "Black":
weight = Font.Black;
break;
default:
weight = Font.Normal;
break;
}
SettingsData.set("fontWeight", weight);
}
}
SettingsSliderRow {
tab: "typography"
tags: ["font", "scale", "size", "zoom"]
settingKey: "fontScale"
text: I18n.tr("Font Scale")
description: I18n.tr("Scale all font sizes throughout the shell")
minimum: 75
maximum: 150
value: Math.round(SettingsData.fontScale * 100)
unit: "%"
defaultValue: 100
onSliderValueChanged: newValue => SettingsData.set("fontScale", newValue / 100)
}
}
SettingsCard {
tab: "typography"
tags: ["animation", "speed", "motion", "duration"]
title: I18n.tr("Animation Speed")
iconName: "animation"
Item {
width: parent.width
height: animationSpeedGroup.implicitHeight
clip: true
DankButtonGroup {
id: animationSpeedGroup
anchors.horizontalCenter: parent.horizontalCenter
buttonPadding: parent.width < 480 ? Theme.spacingS : Theme.spacingL
minButtonWidth: parent.width < 480 ? 44 : 64
textSize: parent.width < 480 ? Theme.fontSizeSmall : Theme.fontSizeMedium
model: [I18n.tr("None"), I18n.tr("Short"), I18n.tr("Medium"), I18n.tr("Long"), I18n.tr("Custom")]
selectionMode: "single"
currentIndex: SettingsData.animationSpeed
onSelectionChanged: (index, selected) => {
if (!selected)
return;
SettingsData.set("animationSpeed", index);
}
Connections {
target: SettingsData
function onAnimationSpeedChanged() {
animationSpeedGroup.currentIndex = SettingsData.animationSpeed;
}
}
}
}
Rectangle {
width: parent.width
height: 1
color: Theme.outline
opacity: 0.15
}
SettingsSliderRow {
id: durationSlider
tab: "typography"
tags: ["animation", "duration", "custom", "speed"]
settingKey: "customAnimationDuration"
text: I18n.tr("Custom Duration")
description: I18n.tr("Fine-tune animation timing in milliseconds")
minimum: 0
maximum: 750
value: Theme.currentAnimationBaseDuration
unit: "ms"
defaultValue: 200
onSliderValueChanged: newValue => {
SettingsData.set("animationSpeed", SettingsData.AnimationSpeed.Custom);
SettingsData.set("customAnimationDuration", newValue);
}
Connections {
target: SettingsData
function onAnimationSpeedChanged() {
if (SettingsData.animationSpeed === SettingsData.AnimationSpeed.Custom)
return;
durationSlider.value = Theme.currentAnimationBaseDuration;
}
}
Connections {
target: Theme
function onCurrentAnimationBaseDurationChanged() {
if (SettingsData.animationSpeed === SettingsData.AnimationSpeed.Custom)
return;
durationSlider.value = Theme.currentAnimationBaseDuration;
}
}
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,873 +0,0 @@
import QtQuick
import qs.Common
import qs.Services
import qs.Widgets
Item {
id: widgetTweaksTab
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
StyledRect {
width: parent.width
height: workspaceSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Column {
id: workspaceSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "view_module"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Workspace Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
DankToggle {
width: parent.width
text: I18n.tr("Workspace Index Numbers")
description: I18n.tr("Show workspace index numbers in the top bar workspace switcher")
checked: SettingsData.showWorkspaceIndex
onToggled: checked => {
return SettingsData.set("showWorkspaceIndex", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Workspace Padding")
description: I18n.tr("Always show a minimum of 3 workspaces, even if fewer are available")
checked: SettingsData.showWorkspacePadding
onToggled: checked => {
return SettingsData.set("showWorkspacePadding", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Show Workspace Apps")
description: I18n.tr("Display application icons in workspace indicators")
checked: SettingsData.showWorkspaceApps
visible: CompositorService.isNiri || CompositorService.isHyprland
onToggled: checked => {
return SettingsData.set("showWorkspaceApps", checked);
}
}
Row {
width: parent.width - Theme.spacingL
spacing: Theme.spacingL
visible: SettingsData.showWorkspaceApps
opacity: visible ? 1 : 0
anchors.left: parent.left
anchors.leftMargin: Theme.spacingL
Column {
width: 120
spacing: Theme.spacingS
StyledText {
text: I18n.tr("Max apps to show")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
}
DankTextField {
width: 100
height: 28
placeholderText: "#ffffff"
text: SettingsData.maxWorkspaceIcons
maximumLength: 7
font.pixelSize: Theme.fontSizeSmall
topPadding: Theme.spacingXS
bottomPadding: Theme.spacingXS
onEditingFinished: {
SettingsData.set("maxWorkspaceIcons", parseInt(text, 10));
}
}
}
Behavior on opacity {
NumberAnimation {
duration: Theme.mediumDuration
easing.type: Theme.emphasizedEasing
}
}
}
DankToggle {
width: parent.width
text: I18n.tr("Per-Monitor Workspaces")
description: I18n.tr("Show only workspaces belonging to each specific monitor.")
checked: SettingsData.workspacesPerMonitor
onToggled: checked => {
return SettingsData.set("workspacesPerMonitor", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Show Occupied Workspaces Only")
description: I18n.tr("Display only workspaces that contain windows")
checked: SettingsData.showOccupiedWorkspacesOnly
visible: CompositorService.isNiri || CompositorService.isHyprland
onToggled: checked => {
return SettingsData.set("showOccupiedWorkspacesOnly", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Show All Tags")
description: I18n.tr("Show all 9 tags instead of only occupied tags (DWL only)")
checked: SettingsData.dwlShowAllTags
visible: CompositorService.isDwl
onToggled: checked => {
return SettingsData.set("dwlShowAllTags", checked);
}
}
}
}
StyledRect {
width: parent.width
height: mediaSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Column {
id: mediaSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "music_note"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Media Player Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
DankToggle {
width: parent.width
text: I18n.tr("Wave Progress Bars")
description: I18n.tr("Use animated wave progress bars for media playback")
checked: SettingsData.waveProgressEnabled
onToggled: checked => {
return SettingsData.set("waveProgressEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Scroll song title")
description: I18n.tr("Scroll title if it doesn't fit in widget")
checked: SettingsData.scrollTitleEnabled
onToggled: checked => {
return SettingsData.set("scrollTitleEnabled", checked);
}
}
}
}
StyledRect {
width: parent.width
height: updaterSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Column {
id: updaterSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "refresh"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("System Updater")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
DankToggle {
width: parent.width
text: I18n.tr("Use Custom Command")
description: I18n.tr("Use custom command for update your system")
checked: SettingsData.updaterUseCustomCommand
onToggled: checked => {
if (!checked) {
updaterCustomCommand.text = "";
updaterTerminalCustomClass.text = "";
SettingsData.set("updaterCustomCommand", "");
SettingsData.set("updaterTerminalAdditionalParams", "");
}
return SettingsData.set("updaterUseCustomCommand", checked);
}
}
FocusScope {
width: parent.width - Theme.spacingM * 2
height: customCommandColumn.implicitHeight
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
Column {
id: customCommandColumn
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: I18n.tr("System update custom command")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
id: updaterCustomCommand
width: parent.width
height: 48
placeholderText: "myPkgMngr --sysupdate"
backgroundColor: Theme.withAlpha(Theme.surfaceContainerHighest, Theme.popupTransparency)
normalBorderColor: Theme.outlineMedium
focusedBorderColor: Theme.primary
Component.onCompleted: {
if (SettingsData.updaterCustomCommand) {
text = SettingsData.updaterCustomCommand;
}
}
onTextEdited: {
SettingsData.set("updaterCustomCommand", text.trim());
}
MouseArea {
anchors.fill: parent
onPressed: mouse => {
updaterCustomCommand.forceActiveFocus();
mouse.accepted = false;
}
}
}
}
}
FocusScope {
width: parent.width - Theme.spacingM * 2
height: terminalParamsColumn.implicitHeight
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
Column {
id: terminalParamsColumn
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: I18n.tr("Terminal custom additional parameters")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
id: updaterTerminalCustomClass
width: parent.width
height: 48
placeholderText: "-T udpClass"
backgroundColor: Theme.withAlpha(Theme.surfaceContainerHighest, Theme.popupTransparency)
normalBorderColor: Theme.outlineMedium
focusedBorderColor: Theme.primary
Component.onCompleted: {
if (SettingsData.updaterTerminalAdditionalParams) {
text = SettingsData.updaterTerminalAdditionalParams;
}
}
onTextEdited: {
SettingsData.set("updaterTerminalAdditionalParams", text.trim());
}
MouseArea {
anchors.fill: parent
onPressed: mouse => {
updaterTerminalCustomClass.forceActiveFocus();
mouse.accepted = false;
}
}
}
}
}
}
}
StyledRect {
width: parent.width
height: runningAppsSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
visible: CompositorService.isNiri || CompositorService.isHyprland
Column {
id: runningAppsSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "apps"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Running Apps Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
DankToggle {
width: parent.width
text: I18n.tr("Running Apps Only In Current Workspace")
description: I18n.tr("Show only apps running in current workspace")
checked: SettingsData.runningAppsCurrentWorkspace
onToggled: checked => {
return SettingsData.set("runningAppsCurrentWorkspace", checked);
}
}
}
}
StyledRect {
width: parent.width
height: workspaceIconsSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
visible: SettingsData.hasNamedWorkspaces()
Column {
id: workspaceIconsSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "label"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Named Workspace Icons")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
StyledText {
width: parent.width
text: I18n.tr("Configure icons for named workspaces. Icons take priority over numbers when both are enabled.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.outline
wrapMode: Text.WordWrap
}
Repeater {
model: SettingsData.getNamedWorkspaces()
Rectangle {
width: parent.width
height: workspaceIconRow.implicitHeight + Theme.spacingM
radius: Theme.cornerRadius
color: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, 0.5)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.3)
border.width: 0
Row {
id: workspaceIconRow
anchors.left: parent.left
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: Theme.spacingM
anchors.rightMargin: Theme.spacingM
spacing: Theme.spacingM
StyledText {
text: "\"" + modelData + "\""
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
width: 150
elide: Text.ElideRight
}
DankIconPicker {
id: iconPicker
anchors.verticalCenter: parent.verticalCenter
Component.onCompleted: {
var iconData = SettingsData.getWorkspaceNameIcon(modelData);
if (iconData) {
setIcon(iconData.value, iconData.type);
}
}
onIconSelected: (iconName, iconType) => {
SettingsData.setWorkspaceNameIcon(modelData, {
"type": iconType,
"value": iconName
});
setIcon(iconName, iconType);
}
Connections {
target: SettingsData
function onWorkspaceIconsUpdated() {
var iconData = SettingsData.getWorkspaceNameIcon(modelData);
if (iconData) {
iconPicker.setIcon(iconData.value, iconData.type);
} else {
iconPicker.setIcon("", "icon");
}
}
}
}
Rectangle {
width: 28
height: 28
radius: Theme.cornerRadius
color: clearMouseArea.containsMouse ? Theme.errorHover : Theme.surfaceContainer
border.color: clearMouseArea.containsMouse ? Theme.error : Theme.outline
border.width: 0
anchors.verticalCenter: parent.verticalCenter
DankIcon {
name: "close"
size: 16
color: clearMouseArea.containsMouse ? Theme.error : Theme.outline
anchors.centerIn: parent
}
MouseArea {
id: clearMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
SettingsData.removeWorkspaceNameIcon(modelData);
}
}
}
Item {
width: parent.width - 150 - 240 - 28 - Theme.spacingM * 4
height: 1
}
}
}
}
}
}
StyledRect {
width: parent.width
height: notificationSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Column {
id: notificationSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "notifications"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("Notification Popups")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
Column {
width: parent.width
spacing: 0
leftPadding: Theme.spacingM
rightPadding: Theme.spacingM
DankDropdown {
width: parent.width - parent.leftPadding - parent.rightPadding
text: I18n.tr("Popup Position")
description: I18n.tr("Choose where notification popups appear on screen")
currentValue: {
if (SettingsData.notificationPopupPosition === -1) {
return "Top Center";
}
switch (SettingsData.notificationPopupPosition) {
case SettingsData.Position.Top:
return "Top Right";
case SettingsData.Position.Bottom:
return "Bottom Left";
case SettingsData.Position.Left:
return "Top Left";
case SettingsData.Position.Right:
return "Bottom Right";
default:
return "Top Right";
}
}
options: ["Top Right", "Top Left", "Top Center", "Bottom Right", "Bottom Left"]
onValueChanged: value => {
switch (value) {
case "Top Right":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Top);
break;
case "Top Left":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Left);
break;
case "Top Center":
SettingsData.set("notificationPopupPosition", -1);
break;
case "Bottom Right":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Right);
break;
case "Bottom Left":
SettingsData.set("notificationPopupPosition", SettingsData.Position.Bottom);
break;
}
SettingsData.sendTestNotifications();
}
}
}
}
}
StyledRect {
width: parent.width
height: osdRow.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Row {
id: osdRow
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
DankIcon {
name: "tune"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
Column {
width: parent.width - Theme.iconSize - Theme.spacingM - osdToggle.width - Theme.spacingM
spacing: Theme.spacingXS
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: I18n.tr("Always Show OSD Percentage")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: I18n.tr("Display volume and brightness percentage values by default in OSD popups")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
width: parent.width
}
}
DankToggle {
id: osdToggle
anchors.verticalCenter: parent.verticalCenter
checked: SettingsData.osdAlwaysShowValue
onToggled: checked => {
SettingsData.set("osdAlwaysShowValue", checked);
}
}
}
}
StyledRect {
width: parent.width
height: osdSection.implicitHeight + Theme.spacingL * 2
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
border.width: 0
Column {
id: osdSection
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingM
Row {
width: parent.width
spacing: Theme.spacingM
DankIcon {
name: "notification_important"
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: I18n.tr("On-screen Displays")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
}
}
Column {
width: parent.width
spacing: 0
leftPadding: Theme.spacingM
rightPadding: Theme.spacingM
DankDropdown {
width: parent.width - parent.leftPadding - parent.rightPadding
text: I18n.tr("OSD Position")
description: I18n.tr("Choose where on-screen displays appear on screen")
currentValue: {
switch (SettingsData.osdPosition) {
case SettingsData.Position.Top:
return "Top Right";
case SettingsData.Position.Left:
return "Top Left";
case SettingsData.Position.TopCenter:
return "Top Center";
case SettingsData.Position.Right:
return "Bottom Right";
case SettingsData.Position.Bottom:
return "Bottom Left";
case SettingsData.Position.BottomCenter:
return "Bottom Center";
case SettingsData.Position.LeftCenter:
return "Left Center";
case SettingsData.Position.RightCenter:
return "Right Center";
default:
return "Bottom Center";
}
}
options: ["Top Right", "Top Left", "Top Center", "Bottom Right", "Bottom Left", "Bottom Center", "Left Center", "Right Center"]
onValueChanged: value => {
switch (value) {
case "Top Right":
SettingsData.set("osdPosition", SettingsData.Position.Top);
break;
case "Top Left":
SettingsData.set("osdPosition", SettingsData.Position.Left);
break;
case "Top Center":
SettingsData.set("osdPosition", SettingsData.Position.TopCenter);
break;
case "Bottom Right":
SettingsData.set("osdPosition", SettingsData.Position.Right);
break;
case "Bottom Left":
SettingsData.set("osdPosition", SettingsData.Position.Bottom);
break;
case "Bottom Center":
SettingsData.set("osdPosition", SettingsData.Position.BottomCenter);
break;
case "Left Center":
SettingsData.set("osdPosition", SettingsData.Position.LeftCenter);
break;
case "Right Center":
SettingsData.set("osdPosition", SettingsData.Position.RightCenter);
break;
}
}
}
}
DankToggle {
width: parent.width
text: I18n.tr("Volume OSD")
description: I18n.tr("Show on-screen display when volume changes")
checked: SettingsData.osdVolumeEnabled
onToggled: checked => {
return SettingsData.set("osdVolumeEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Media Volume OSD")
description: I18n.tr("Show on-screen display when media player volume changes")
checked: SettingsData.osdMediaVolumeEnabled
onToggled: checked => {
return SettingsData.set("osdMediaVolumeEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Brightness OSD")
description: I18n.tr("Show on-screen display when brightness changes")
checked: SettingsData.osdBrightnessEnabled
onToggled: checked => {
return SettingsData.set("osdBrightnessEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Idle Inhibitor OSD")
description: I18n.tr("Show on-screen display when idle inhibitor state changes")
checked: SettingsData.osdIdleInhibitorEnabled
onToggled: checked => {
return SettingsData.set("osdIdleInhibitorEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Microphone Mute OSD")
description: I18n.tr("Show on-screen display when microphone is muted/unmuted")
checked: SettingsData.osdMicMuteEnabled
onToggled: checked => {
return SettingsData.set("osdMicMuteEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Caps Lock OSD")
description: I18n.tr("Show on-screen display when caps lock state changes")
checked: SettingsData.osdCapsLockEnabled
onToggled: checked => {
return SettingsData.set("osdCapsLockEnabled", checked);
}
}
DankToggle {
width: parent.width
text: I18n.tr("Power Profile OSD")
description: I18n.tr("Show on-screen display when power profile changes")
checked: SettingsData.osdPowerProfileEnabled
onToggled: checked => {
return SettingsData.set("osdPowerProfileEnabled", checked);
}
}
}
}
}
}
}

View File

@@ -0,0 +1,71 @@
pragma ComponentBehavior: Bound
import QtQuick
import qs.Common
import qs.Widgets
Item {
id: root
property string tab: ""
property var tags: []
property string settingKey: ""
property string text: ""
property string description: ""
property alias model: buttonGroup.model
property alias currentIndex: buttonGroup.currentIndex
property alias selectionMode: buttonGroup.selectionMode
property alias buttonHeight: buttonGroup.buttonHeight
property alias minButtonWidth: buttonGroup.minButtonWidth
property alias buttonPadding: buttonGroup.buttonPadding
property alias checkIconSize: buttonGroup.checkIconSize
property alias textSize: buttonGroup.textSize
property alias spacing: buttonGroup.spacing
property alias checkEnabled: buttonGroup.checkEnabled
signal selectionChanged(int index, bool selected)
width: parent?.width ?? 0
height: 60
Row {
id: contentRow
width: parent.width - Theme.spacingM * 2
x: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingM
Column {
width: parent.width - buttonGroup.width - Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingXS
StyledText {
text: root.text
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
elide: Text.ElideRight
width: parent.width
visible: root.text !== ""
}
StyledText {
text: root.description
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
width: parent.width
visible: root.description !== ""
}
}
DankButtonGroup {
id: buttonGroup
anchors.verticalCenter: parent.verticalCenter
selectionMode: "single"
onSelectionChanged: (index, selected) => root.selectionChanged(index, selected)
}
}
}

View File

@@ -0,0 +1,121 @@
pragma ComponentBehavior: Bound
import QtQuick
import qs.Common
import qs.Widgets
StyledRect {
id: root
property string tab: ""
property var tags: []
property string title: ""
property string iconName: ""
property bool collapsible: false
property bool expanded: true
default property alias content: contentColumn.children
width: parent?.width ?? 0
height: {
var hasHeader = root.title !== "" || root.iconName !== "";
if (collapsed)
return headerRow.height + Theme.spacingL * 2;
var h = Theme.spacingL * 2 + contentColumn.height;
if (hasHeader)
h += headerRow.height + Theme.spacingM;
return h;
}
radius: Theme.cornerRadius
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
readonly property bool collapsed: collapsible && !expanded
readonly property bool hasHeader: root.title !== "" || root.iconName !== ""
property bool animationsEnabled: false
Component.onCompleted: Qt.callLater(() => animationsEnabled = true)
Behavior on height {
enabled: root.animationsEnabled
NumberAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
Column {
id: mainColumn
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: root.hasHeader ? Theme.spacingM : 0
clip: true
Item {
id: headerRow
width: parent.width
height: root.hasHeader ? Math.max(headerIcon.height, headerText.height) : 0
visible: root.hasHeader
Row {
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingM
DankIcon {
id: headerIcon
name: root.iconName
size: Theme.iconSize
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
visible: root.iconName !== ""
}
StyledText {
id: headerText
text: root.title
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
visible: root.title !== ""
}
}
DankIcon {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
name: root.expanded ? "expand_less" : "expand_more"
size: Theme.iconSize - 2
color: Theme.surfaceVariantText
visible: root.collapsible
}
MouseArea {
anchors.fill: parent
enabled: root.collapsible
cursorShape: root.collapsible ? Qt.PointingHandCursor : Qt.ArrowCursor
onClicked: {
if (!root.collapsible)
return;
root.expanded = !root.expanded;
}
}
}
Column {
id: contentColumn
width: parent.width
spacing: Theme.spacingM
visible: !root.collapsed
opacity: root.collapsed ? 0 : 1
Behavior on opacity {
NumberAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
pragma ComponentBehavior: Bound
import QtQuick
import qs.Widgets
DankDropdown {
id: root
property string tab: ""
property var tags: []
property string settingKey: ""
width: parent?.width ?? 0
addHorizontalPadding: true
}

View File

@@ -0,0 +1,99 @@
pragma ComponentBehavior: Bound
import QtQuick
import qs.Common
import qs.Widgets
Item {
id: root
property string tab: ""
property var tags: []
property string settingKey: ""
property string text: ""
property string description: ""
property alias value: slider.value
property alias minimum: slider.minimum
property alias maximum: slider.maximum
property alias unit: slider.unit
property alias wheelEnabled: slider.wheelEnabled
property alias thumbOutlineColor: slider.thumbOutlineColor
property int defaultValue: -1
signal sliderValueChanged(int newValue)
width: parent?.width ?? 0
height: headerRow.height + Theme.spacingXS + slider.height
Column {
id: contentColumn
width: parent.width - Theme.spacingM * 2
x: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingXS
Row {
id: headerRow
width: parent.width
height: labelColumn.height
spacing: Theme.spacingS
Column {
id: labelColumn
anchors.verticalCenter: parent.verticalCenter
spacing: Theme.spacingXS
width: parent.width - resetButtonContainer.width - Theme.spacingS
StyledText {
text: root.text
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
visible: root.text !== ""
}
StyledText {
text: root.description
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
width: parent.width
visible: root.description !== ""
}
}
Item {
id: resetButtonContainer
width: root.defaultValue >= 0 ? 36 : 0
height: 36
anchors.verticalCenter: parent.verticalCenter
DankActionButton {
id: resetButton
anchors.centerIn: parent
buttonSize: 36
iconName: "restart_alt"
iconSize: 20
visible: root.defaultValue >= 0 && slider.value !== root.defaultValue
backgroundColor: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
iconColor: Theme.surfaceVariantText
onClicked: {
slider.value = root.defaultValue;
root.sliderValueChanged(root.defaultValue);
}
}
}
}
DankSlider {
id: slider
width: parent.width
height: 32
showValue: true
wheelEnabled: false
thumbOutlineColor: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
onSliderValueChanged: newValue => root.sliderValueChanged(newValue)
}
}
}

View File

@@ -0,0 +1,14 @@
pragma ComponentBehavior: Bound
import QtQuick
import qs.Widgets
DankToggle {
id: root
property string tab: ""
property var tags: []
property string settingKey: ""
width: parent?.width ?? 0
}

View File

@@ -0,0 +1,224 @@
import QtQuick
import qs.Common
import qs.Services
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
DankFlickable {
anchors.fill: parent
clip: true
contentHeight: mainColumn.height + Theme.spacingXL
contentWidth: width
Column {
id: mainColumn
width: Math.min(550, parent.width - Theme.spacingL * 2)
anchors.horizontalCenter: parent.horizontalCenter
spacing: Theme.spacingXL
SettingsCard {
width: parent.width
iconName: "view_module"
title: I18n.tr("Workspace Settings")
SettingsToggleRow {
text: I18n.tr("Workspace Index Numbers")
description: I18n.tr("Show workspace index numbers in the top bar workspace switcher")
checked: SettingsData.showWorkspaceIndex
onToggled: checked => SettingsData.set("showWorkspaceIndex", checked)
}
SettingsToggleRow {
text: I18n.tr("Workspace Padding")
description: I18n.tr("Always show a minimum of 3 workspaces, even if fewer are available")
checked: SettingsData.showWorkspacePadding
onToggled: checked => SettingsData.set("showWorkspacePadding", checked)
}
SettingsToggleRow {
text: I18n.tr("Show Workspace Apps")
description: I18n.tr("Display application icons in workspace indicators")
checked: SettingsData.showWorkspaceApps
visible: CompositorService.isNiri || CompositorService.isHyprland
onToggled: checked => SettingsData.set("showWorkspaceApps", checked)
}
Row {
width: parent.width - Theme.spacingL
spacing: Theme.spacingL
visible: SettingsData.showWorkspaceApps
opacity: visible ? 1 : 0
anchors.left: parent.left
anchors.leftMargin: Theme.spacingL
Column {
width: 120
spacing: Theme.spacingS
StyledText {
text: I18n.tr("Max apps to show")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
}
DankTextField {
width: 100
height: 28
placeholderText: "#ffffff"
text: SettingsData.maxWorkspaceIcons
maximumLength: 7
font.pixelSize: Theme.fontSizeSmall
topPadding: Theme.spacingXS
bottomPadding: Theme.spacingXS
onEditingFinished: SettingsData.set("maxWorkspaceIcons", parseInt(text, 10))
}
}
Behavior on opacity {
NumberAnimation {
duration: Theme.mediumDuration
easing.type: Theme.emphasizedEasing
}
}
}
SettingsToggleRow {
text: I18n.tr("Per-Monitor Workspaces")
description: I18n.tr("Show only workspaces belonging to each specific monitor.")
checked: SettingsData.workspacesPerMonitor
onToggled: checked => SettingsData.set("workspacesPerMonitor", checked)
}
SettingsToggleRow {
text: I18n.tr("Show Occupied Workspaces Only")
description: I18n.tr("Display only workspaces that contain windows")
checked: SettingsData.showOccupiedWorkspacesOnly
visible: CompositorService.isNiri || CompositorService.isHyprland
onToggled: checked => SettingsData.set("showOccupiedWorkspacesOnly", checked)
}
SettingsToggleRow {
text: I18n.tr("Show All Tags")
description: I18n.tr("Show all 9 tags instead of only occupied tags (DWL only)")
checked: SettingsData.dwlShowAllTags
visible: CompositorService.isDwl
onToggled: checked => SettingsData.set("dwlShowAllTags", checked)
}
}
SettingsCard {
width: parent.width
iconName: "label"
title: I18n.tr("Named Workspace Icons")
visible: SettingsData.hasNamedWorkspaces()
StyledText {
width: parent.width
text: I18n.tr("Configure icons for named workspaces. Icons take priority over numbers when both are enabled.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.outline
wrapMode: Text.WordWrap
}
Repeater {
model: SettingsData.getNamedWorkspaces()
Rectangle {
width: parent.width
height: workspaceIconRow.implicitHeight + Theme.spacingM
radius: Theme.cornerRadius
color: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, 0.5)
border.width: 0
Row {
id: workspaceIconRow
anchors.left: parent.left
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: Theme.spacingM
anchors.rightMargin: Theme.spacingM
spacing: Theme.spacingM
StyledText {
text: "\"" + modelData + "\""
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
width: 150
elide: Text.ElideRight
}
DankIconPicker {
id: iconPicker
anchors.verticalCenter: parent.verticalCenter
Component.onCompleted: {
var iconData = SettingsData.getWorkspaceNameIcon(modelData);
if (iconData) {
setIcon(iconData.value, iconData.type);
}
}
onIconSelected: (iconName, iconType) => {
SettingsData.setWorkspaceNameIcon(modelData, {
"type": iconType,
"value": iconName
});
setIcon(iconName, iconType);
}
Connections {
target: SettingsData
function onWorkspaceIconsUpdated() {
var iconData = SettingsData.getWorkspaceNameIcon(modelData);
if (iconData) {
iconPicker.setIcon(iconData.value, iconData.type);
} else {
iconPicker.setIcon("", "icon");
}
}
}
}
Rectangle {
width: 28
height: 28
radius: Theme.cornerRadius
color: clearMouseArea.containsMouse ? Theme.errorHover : Theme.surfaceContainer
border.width: 0
anchors.verticalCenter: parent.verticalCenter
DankIcon {
name: "close"
size: 16
color: clearMouseArea.containsMouse ? Theme.error : Theme.outline
anchors.centerIn: parent
}
MouseArea {
id: clearMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: SettingsData.removeWorkspaceNameIcon(modelData)
}
}
Item {
width: parent.width - 150 - 240 - 28 - Theme.spacingM * 4
height: 1
}
}
}
}
}
}
}
}

View File

@@ -55,7 +55,6 @@ Item {
signal saveBind(string originalKey, var newData)
signal removeBind(string key)
signal cancelEdit
signal restoreKeyConsumed
implicitHeight: contentColumn.implicitHeight
height: implicitHeight
@@ -67,7 +66,6 @@ Item {
return;
if (restoreKey) {
restoreToKey(restoreKey);
restoreKeyConsumed();
} else {
resetEdits();
}
@@ -77,7 +75,6 @@ Item {
if (!isExpanded || !restoreKey)
return;
restoreToKey(restoreKey);
restoreKeyConsumed();
}
function restoreToKey(keyToFind) {

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": "%1 adaptador(es), ninguno conectado"
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- Apóyanos con una estrella"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1 evento"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "Formato de 24 horas"
},
"24-hour format": {
"24-hour format": "Formato de 24 horas"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "De terceros"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "Clima de la semana"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "Un archivo con este nombre ya existe. ¿Quieres reemplazarlo?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": "Activo"
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": "Activo:"
},
@@ -128,6 +170,9 @@
"All": {
"All": "Todo"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "Todo el día"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "Siempre mostrar el porcentaje en el OSD"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": "Iconos fijos"
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "Nivel de batería y gestión de energía"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "Conectar pantalla de bloqueo a las señales dbus de loginctl. Deshabilitar si se usa una pantalla de bloqueo externa"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "Capacidad"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": "Indicador de Bloq Mayús"
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": "Elije dónde aparecen los indicadores en pantalla"
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": "Cifrado"
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": "Cerrar vista general al iniciar"
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "Sobrescribir color"
},
"Color Picker": {
"Color Picker": "Selector de color"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "Temperatura de color para el día"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "Compositor"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "Configuración activada"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "Controlar la reproducción en curso"
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": "Controla la opacidad de todas las ventanas, modales y sus capas de contenido (DankDash, Ajustes, Cajón de aplicaciones, Centro de control, etc.)"
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "Copiar Nombre del Proceso"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "Redondeo de esquinas (0 = esquinas cuadradas)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "Personal"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "Ubicación personalizada"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "Acciones de energía personalizadas"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "Transparencia personalizada"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearch no disponible"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": "Modo oscuro"
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": "Formato de nombre"
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "Mostrar un panel con aplicaciones fijadas y activas que puede colocarse en el borde superior, inferior, izquierdo o derecho de la pantalla"
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": "Mostrar acciones en una cuadrícula en vez de una lista"
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": "Ajustes de pantalla para "
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "Mostrar porcentaje de volumen y brillo en los avisos OSD"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "Pantallas"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "Dock"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "Posición del dock"
},
"Dock Transparency": {
"Dock Transparency": "Transparencia del dock"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "Dominio (opcional)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": "Habilitar barra"
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "Habilitar temperatura GPU"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "Información del archivo"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "Encontrar texto"
},
"Find in note...": {
"Find in note...": "Encontrar en notas..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "Control de gamma no disponible. Requiere DMS API v6+."
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "GitHub:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "Con qué frecuencia cambiar el fondo de pantalla"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": "Importar VPN"
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "Incluir transiciones"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "Matar el proceso"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "Usado hace %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "Pantalla de bloqueo"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "Formato en la pantalla de bloqueo"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "Cerrar sesión"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "Texto largo"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": "Medio necesario"
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "Ajustes del reproductor"
},
"Media Players (": {
"Media Players (": "Reproductores ("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": "Volumen multimedia OSD"
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "Memoria"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": "Micrófono"
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": "Silencio del micrófono OSD"
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "Mostrar velocidad de descarga y subida de la red"
},
"Never": {
"Never": ""
},
"New": {
"New": "Nuevo"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "Temperatura nocturna"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": "Ninguna"
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "Prioridad normal"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": "Bandeja de salida no encontrada"
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": "Posición: "
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "Energía y seguridad"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "Confirmación de acción"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "Opciones de Energía"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "Perfil de Energía Degradada"
},
"Power Profile OSD": {
"Power Profile OSD": "Perfil de energía OSD"
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "Escalar todos los tamaños de fuente"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "Escanear"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "Seleccionar el grosor de la fuente"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "Seleccionar monitor para configurar el fondo de pantalla"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "Seleccionar tema de sonidos del sistema"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Selecciona el algoritmo de colores del fondo de pantalla"
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "Ajustes"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: Borrar todo • Esc: Cerrar "
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": "Mostrar Reiniciar DMS"
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": "Mostrar Suspender"
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "Tamaño relativo"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "Ordenar alfabéticamente"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "Tema de sonidos"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "Espaciador"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "Apoyar desarrollo"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "Superficie"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "Monitoreo del sistema:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "Bandeja del sistema"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "Iconos del área de notificaciones del sistema"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "Notificaciones emergentes del sistema"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "Los complementos de terceros son creados por la comunidad y no cuentan con soporte oficial de DankMaterialShell.\\n\\nEstos complementos pueden representar riesgos de seguridad y privacidad - instálalos bajo tu propia responsabilidad."
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "Este widget evita que la GPU entre en estados de apagado y puede afectar significativamente la batería en portátiles. No se recomienda usarlo en portátiles con gráficos híbridos."
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "Tiempo y clima"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": "Tiempo agotado"
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "Para actualizar, ejecute el siguiente comando:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "Mensajes emergentes"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "Efecto de transición"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "Apagar monitores después de"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": "No disponible"
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "Efecto visual usado al cambiar el fondo de pantalla"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "Cambio de volumen"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "Espacios de trabajo"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": "Si"
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "Tienes cambios sin guardar. ¿Guardar antes de abrir otro archivo?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": "Elegir tema personalizado"
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": "Seleccionar fondo de pantalla"
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "eventos"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctl no disponible - integración requiere conexión al socket DMS"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "Matugen no detectado - tematización dinámica no disponible"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "oficial"
},
"profile image file browser title": {
"Select Profile Image": "Elegir foto de perfil"
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": "Ajustes"
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": "Elegir carpeta de fondos de pantalla"
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "• Instalar solo desde fuentes confiables"
},

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": ""
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- Supportaci Con Una Stella ⭐"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1 evento"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "Formato 24-Ore"
},
"24-hour format": {
"24-hour format": "formato 24-ore"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "terze parti"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "Previsioni 7-giorni"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "Un file con questo nome esiste già. Vuoi sovrascriverlo?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": ""
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": ""
},
@@ -128,6 +170,9 @@
"All": {
"All": "Tutto"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "Tutto il giorno"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "Visualizza sempre percentuale OSD"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": "Icone sempre attive"
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "Livello batteria e gestione energetica"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "Collega il blocca schermo ai segnali dbus da loginctl.\nDisabilità se stai usando un blocca schermo esterno"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "Capacità"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": "Indicatore Maiuscolo"
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": "Scegli dove i messaggi appaiono sullo schermo"
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": ""
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": "Chiudi Overview all'Avvio"
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "Sostituzione Colore"
},
"Color Picker": {
"Color Picker": "Prelievo Colore"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "Temperatura colore per il giorno"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "Compositor\n"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "Configurazione attivata"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "Controllo media attualmente in riproduzione "
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": "Controlla l'opacità di tutti i popup, delle finestre modali e dei relativi livelli di contenuto (Dank Dash, Impostazioni, App Drawer, Centro di controllo, ecc.)"
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "Copia Nome Processo"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "Raggio Angoli (0 = angoli squadrati)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "Personalizzato"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "Posizione Personalizzata"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "Azione Alimentazione Personalizzate"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "Trasparenza personalizzata"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearch non disponibile"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": "Modalità Scura"
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": "Formato del nome visualizzato"
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "Visualizza una dock con applicazioni pinnate ed in esecuzione che possono essere posizionate nell'angolo superiore, inferiore, sinistro o destro dello schermo"
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": "Visualizza le azioni di alimentazioni in griglia invece di una lista"
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": "Impostazioni display per "
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "Mostra di default la percentuale volume e luminosità nei popups OSD"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "Displays"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "Dock"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "Posizione Dock"
},
"Dock Transparency": {
"Dock Transparency": "Trasparenza Dock"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "Dominio (opzionale)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": "Abilita Barra"
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "Abilita Temperatura GPU"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "Informazioni File"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "Trova nel Testo"
},
"Find in note...": {
"Find in note...": "Trova in note..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "Gamma control non disponibile. Richiede API DMS v6+."
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "Github:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "Quanto spesso cambiare lo sfondo"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": ""
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "Includi Transizioni"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "Chiusura Processo"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "Ultimo avviato %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "Blocca Schermo"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "Formato Blocca Schermo"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "Log Out"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "Testo Lungo"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": "Media Richiesti"
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "Impostazioni Media Player"
},
"Media Players (": {
"Media Players (": "Media Players ("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": "OSD Volume Media"
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "Memoria"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": "Microfono"
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": "OSD Microfono Muto"
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "Mostra velocità di download e upload della rete"
},
"Never": {
"Never": ""
},
"New": {
"New": "Nuovo"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "Temperatura Notte"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": "Nulla"
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "Priorità Normale"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": "Vassoio Uscita Mancante"
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": "Posizione"
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "Alimentazione & Sicurezza"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "Conferma Azioni Alimentazione"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "Opzioni Alimentazione"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "Degradamento profilo energetico"
},
"Power Profile OSD": {
"Power Profile OSD": "OSD Profilo Alimentazione"
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "Scala tutte le dimensioni dei font"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "Scansiona"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "Seleziona peso font"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "Selezionare il monitor per configurare lo sconto"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "Seleziona tema suoni di sistema"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Seleziona l'algoritmo tavolozza usato per i colori basati sullo sfondo"
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "Impostazioni"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: Elimina tutto • Esc: Chiude"
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": "Mostra Riavvia DMS"
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": "Mostra Sospendi"
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "Dimensione Offset"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "Ordina Alfabeticamente"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "Tema Suoni"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "Spaziatore"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "Supporta Sviluppo"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "Superficie"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "Monitoraggio Sistema:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "Vassoio Sistema"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "Icone area notifiche di sistema"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "Notiche toast di sistema"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "I plugin di terze parti sono creati dalla community e non sono ufficialmente supportati da DankMaterialShell.\\n\\nQuesti plugin possono comportare rischi per la sicurezza e la privacy - installare a proprio rischio."
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "Questo widget impedisce gli stati di spegnimento della GPU, che possono influire in modo significativo sulla durata della batteria sui laptop. Non è consigliabile utilizzare questo su laptop con grafica ibrida."
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "Orario & Meteo"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": "Scaduto"
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "Per aggiornare, esegui il seguente comando:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "Messaggi Toast"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "Effetto Transizione"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "Spegni monitors dopo"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": ""
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "Effetto visivo usato quando cambia lo sfondo"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "Volume Cambiato"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "Switcher Workspace"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": ""
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "Ci sono modifiche non salvate. Salvare prima di aprire un file?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": "Seleziona Tema Personalizzato"
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": "Seleziona Sfondo"
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "eventi"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctl non disponibile - integrazione blocco richiede connessione socket DMS"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "matugen non rilevato - tema dinamico non disponibile"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "ufficiale"
},
"profile image file browser title": {
"Select Profile Image": "Seleziona Immagine Profilo"
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": "Impostazioni"
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": "Seleziona Cartella Sfondo"
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "• Installa solo da sorgenti fidate"
},

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": ""
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- 星を付けて応援してください⭐"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1件のイベント"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "24時間形式"
},
"24-hour format": {
"24-hour format": "24時間形式"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "サードパーティ"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "7日間予報"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "この名前のファイルは既に存在します。上書きしてもよろしいですか?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": ""
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": ""
},
@@ -128,6 +170,9 @@
"All": {
"All": "全て"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "毎日"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "常に OSD パーセンテージを表示"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": "常時表示アイコン"
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "バッテリーレベルおよび電源管理"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "ロック画面をloginctlからのdbus信号にバインド。外部ロック画面を使用している場合は無効に"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "容量"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": "Caps Lock インジケーター"
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": "OSDの表示する場所を選んでください"
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": ""
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": "起動中のときに概要を閉じる"
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "色のオーバーライド"
},
"Color Picker": {
"Color Picker": "カラーピッカー"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "昼間の色温度"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "コンポジター"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "設定が適用されました"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "現在再生中のメディアを制御"
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": "すべてのポップアウト、モーダル、およびそれらのコンテンツレイヤー(DankDash、設定、アプリドロワー、コントロールセンターなど)の不透明度を制御"
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "プロセス名をコピー"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "コーナー半径0 = 角丸なし)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "カスタム"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "カスタムロケーション"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "カスタム電源アクション"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "カスタム透明度"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearchが利用できません"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": "ダークモード"
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": "名称形式を表示"
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "画面の上、下、左、右の端に配置できる、ピン留めされた実行中のアプリケーションを含むドックを表示します"
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": "電源メニューのアクションをリストではなくグリッドに表示"
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": "以下の設定を表示 "
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "OSDポップアップに音量と輝度のパーセンテージ値をデフォルトで表示"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "表示"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "ドック"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "ドック位置"
},
"Dock Transparency": {
"Dock Transparency": "ドックの透明度"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "ドメイン (オプション)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": "バーを起用"
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "GPU温度を有効にする"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "ファイル情報"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "テキスト内検索"
},
"Find in note...": {
"Find in note...": "メモで検索..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "ガンマ制御は使用できません。DMS API v6+ が必要です。"
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "GitHub:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "壁紙を切り替える間隔"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": ""
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "トランジションを含める"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "プロセスを強制終了"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "最終起動日 %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "ロック画面"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "ロック画面のフォーマット"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "ログアウト"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "長文"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": "メディアが必要"
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "メディアプレーヤーの設定"
},
"Media Players (": {
"Media Players (": "メディアプレーヤー("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": "メディア音量OSD"
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "メモリ"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": "マイク"
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": "マイクミュートOSD"
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "ネットワークのダウンロードおよびアップロード速度を表示"
},
"Never": {
"Never": ""
},
"New": {
"New": "新しい"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "夜間の温度"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": "ない"
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "通常の優先度"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": "アウトプットトレイが見つかりませんでした"
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": "位置: "
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "電源とセキュリティ"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "電源アクションの確認"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "電源オプション"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "電源プロファイルの劣化"
},
"Power Profile OSD": {
"Power Profile OSD": "電源プロファイルOSD"
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "すべてのフォントサイズを拡大縮小"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "スキャン"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "フォントの太さを選ぶ"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "壁紙を設定するモニターを選ぶ"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "システムサウンドテーマを選ぶ"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "壁紙ベースの色で、使用するパレットアルゴリズムを選ぶ"
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "設定"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: すべてクリア • Esc: 閉じる"
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": "DMS再起動を表示"
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": "一時停止を表示"
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "サイズオフセット"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "アルファベット順に並べ替える"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "サウンドテーマ"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "間隔"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "開発をサポート"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "表面"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "システム監視:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "システムトレイ"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "システム通知エリアアイコン"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "システムトースト通知"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "サードパーティプラグインはコミュニティによって作成されており、DankMaterialShellによる公式サポートはありません。\\n\\nこれらのプラグインはセキュリティやプライバシーのリスクをもたらす可能性があります - 自己責任でインストールしてください。"
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "このウィジェットはGPUの省電力状態を防ぎ、ートパソコンのバッテリー寿命に大きな影響を与える可能性があります。ハイブリッドグラフィックス搭載のートパソコンでの使用は推奨されません。"
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "時間および天気"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": "タイムアウト"
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "更新するには以下のコマンドを実行してください:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "トーストメッセージ"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "トランジション効果"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "後にモニターの電源を切る"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": ""
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "壁紙が変更される時に使用されるビジュアルエフェクト"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "音量変更"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "ワークスペーススイッチャー"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": ""
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "保存されていない変更があります。ファイルを開く前に保存しますか?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": "カスタムテーマを選んでください"
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": "壁紙を選んでください"
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "イベント"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctlが利用できません- ロック統合のためにDMS socketの接続が必要です。"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "matugen が検出されません - ダイナミックテーマ設定は利用できません"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "公式"
},
"profile image file browser title": {
"Select Profile Image": "プロファイル画像を選んでください"
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": "設定"
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": "壁紙のディレクトリを選んでください"
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "• 信頼できるソースからのみインストールする"
},

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": "%1 adapter(y), brak połączenia"
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- Wesprzyj nas gwiazdką ⭐"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1 wydarzenie"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "Format 24-godzinny"
},
"24-hour format": {
"24-hour format": "format 24-godzinny"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "strona trzecia"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "Prognoza 7-dniowa"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "Plik o takiej nazwie już istnieje. Czy chcesz go nadpisać?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": "Aktywny"
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": "Aktywny: "
},
@@ -128,6 +170,9 @@
"All": {
"All": "Wszystkie"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "Cały dzień"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "Zawsze pokazuj procent w OSD"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": "Ikony zawsze włączone"
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "Poziom baterii i zarządzanie zasilaniem"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "Powiąż ekran blokady z sygnałami dbus z loginctl. Wyłącz, jeśli używasz zewnętrznego ekranu blokady"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "Pojemność"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": "Wskaźnik caps locka"
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": "Wybierz miejsce wyświetlania informacji na ekranie"
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": "Szyfr"
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": "Zamknij podgląd przy uruchomieniu"
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "Nadpisanie koloru"
},
"Color Picker": {
"Color Picker": "Próbnik kolorów"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "Temperatura barwowa w ciągu dnia"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "Kompozytor"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "Konfiguracja aktywowana"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "Steruj aktualnie odtwarzanymi multimediami"
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": "Kontroluje przezroczystość wszystkich wyskakujących okienek, okien modalnych i ich warstw zawartości (DankDash, Ustawienia, Szuflada aplikacji, Centrum sterowania itp.)"
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "Kopiuj nazwę procesu"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "Promień narożnika (0 = kwadratowe narożniki)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "Niestandardowy"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "Niestandardowa lokalizacja"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "Niestandardowe akcje zasilania"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "Niestandardowa przezroczystość"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearch niedostępny"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": "Tryb ciemny"
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": "Format nazwy wyświetlanej"
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "Wyświetla dok z przypiętymi i uruchomionymi aplikacjami, który można umieścić na górze, na dole, po lewej lub po prawej stronie ekranu."
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": "Wyświetl elementy menu zasilania w siatce zamiast listy"
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": "Ustawienia wyświetlania dla "
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "Domyślnie wyświetlaj wartości procentowe głośności i jasności w wyskakujących okienkach OSD"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "Ekrany"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "Dok"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "Pozycja Doka"
},
"Dock Transparency": {
"Dock Transparency": "Przezroczystość Doka"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "Domena (opcjonalnie)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": "Włącz pasek"
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "Pokaż temperaturę GPU"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "Informacje"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "Znajdź w tekście"
},
"Find in note...": {
"Find in note...": "Znajdź w notatce..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "Kontrola gamma niedostępna. Wymaga DMS API w wersji 6+."
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "Github:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "Jak często zmieniać tapetę"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": "Importuj VPN"
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "Uwzględnij przejścia"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "Zabij proces"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "Ostatnio uruchomiony %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "Ekran blokady"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "Format ekranu blokady"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "Wyloguj"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "Długi tekst"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": "Wymagany nośnik"
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "Ustawienia odtwarzacza multimediów"
},
"Media Players (": {
"Media Players (": "Odtwarzacze multimediów ("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": "OSD głośności multimediów"
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "Pamięć"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": "Mikrofon"
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": "OSD Wyciszenia Mikrofonu"
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "Wyświetlanie prędkości pobierania i wysyłania sieci"
},
"Never": {
"Never": ""
},
"New": {
"New": "Nowy"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "Temperatura w nocy"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": "Brak"
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "Normalny priorytet"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": "Brak tacy wyjściowej"
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": "Stanowisko: "
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "Zasilanie i bezpieczeństwo"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "Potwierdzenie działania zasilania"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "Opcje zasilania"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "Pogorszenie profilu zasilania"
},
"Power Profile OSD": {
"Power Profile OSD": "OSD Profilu Zasilania"
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "Skaluj wszystkie rozmiary czcionek"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "Skanuj"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "Wybierz grubość czcionki"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "Wybierz monitor, aby skonfigurować tapetę"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "Wybierz motyw dźwiękowy systemu"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Wybierz algorytm palety używany dla kolorów tapet."
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "Ustawienia"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: Wyczyść wszystko • Esc: Zamknij"
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": "Pokaż ponowne uruchomienie DMS"
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": "Pokaż zawieszenie"
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "Przesunięcie rozmiaru"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "Sortuj alfabetycznie"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "Motyw dźwiękowy"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "Odstęp"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "Wspieraj rozwój"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "Powierzchnia"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "Monitorowanie systemu:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "Zasobnik systemowy"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "Ikony obszaru powiadomień systemowych"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "Powiadomienia o toastach systemowych"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "Wtyczki firm trzecich są tworzone przez społeczność i nie są oficjalnie wspierane przez DankMaterialShell.\\n\\nTe wtyczki mogą stanowić zagrożenie dla bezpieczeństwa i prywatności - instaluj na własne ryzyko."
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "Ten widżet zapobiega wyłączaniu zasilania GPU, co może znacznie wpłynąć na żywotność baterii w laptopach. Nie zaleca się używania go na laptopach z hybrydową grafiką."
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "Czas i pogoda"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": "Przekroczono limit czasu"
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "Aby dokonać aktualizacji, uruchom następujące polecenie:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "Wiadomości toastowe"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "Efekt przejścia"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "Wyłącz monitory po"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": "Niedostępny"
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "Efekt wizualny używany przy zmianie tapety"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "Zmieniony wolumen"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "Przełącznik obszarów roboczych"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": "Tak"
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "Masz niezapisane zmiany. Zapisać przed otwarciem pliku?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": "Wybierz niestandardowy motyw"
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": "Wybierz tapetę"
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "wydarzenia"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctl niedostępny - integracja blokady wymaga połączenia z gniazdem DMS"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "nie wykryto matugen - dynamiczne motywy niedostępne"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "oficjalny"
},
"profile image file browser title": {
"Select Profile Image": "Wybierz obraz profilowy"
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": "Ustawienia"
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": "Wybierz katalog z tapetami"
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "• Instaluj tylko z zaufanych źródeł"
},

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": ""
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- Apoie-nos com uma Estrela ⭐"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1 evento"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "Formato de 24 Horas"
},
"24-hour format": {
"24-hour format": "formato de 24 horas"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "Terceiros"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "Previsão do Tempo de 7 Dias"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "Um arquivo com esse nome já existe. Você quer sobrescrevê-lo?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": ""
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": ""
},
@@ -128,6 +170,9 @@
"All": {
"All": "Todos"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "O dia todo"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "Sempre mostrar porcetagem no OSD"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": ""
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "Nível de bateria e manejamento de energia"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "Vincular o bloqueio de tela aos sinais do DBus do loginctl. Desative se estiver usando um bloqueio de tela externo"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "Capacidade"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": ""
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": ""
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": ""
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": ""
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "Sobrescrever Cor"
},
"Color Picker": {
"Color Picker": "Seletor de Cores"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "Temperatura de cor durante o dia"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "Compositor"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "Configuração ativada"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "Controlar mídia que está sendo reproduzida"
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": ""
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "Copiar Nome do Processo"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "Ângulo da quina (0 = quina quadrilátera)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "Customizado"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "Customizar Localização"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "Ações de Energia Customizadas"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "Transparência Customizada"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearch não disponível"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": ""
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": ""
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "Exibir um dock com aplicativos que estão sendo utilizados, e que pode ser posicionada no superior, inferior, esquerda ou direita dos cantos da tela"
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": ""
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": ""
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "Mostrar porcentagem de volume e brilho por padrão nos pop ups de OSD"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "Telas"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "Dock"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "Posição da Dock"
},
"Dock Transparency": {
"Dock Transparency": "Transparência da Dock"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "Domínio (opcional)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": ""
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "Habilitar Temperatura da GPU"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "Informação do Arquivo"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "Procurar no Texto"
},
"Find in note...": {
"Find in note...": "Procurar na nota..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "Controle de gama não disponível. Necessário DMS API v6+."
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "Github:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "Tempo entre papéis de parede"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": ""
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "Incluir Transições"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "Matar Processo"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "Lançado pela última vez em %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "Tela de Bloqueio"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "Formato da Tela de Bloqueio"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "Sair"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "Longo Texto"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": ""
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "Configurações do Reprodutor de Mídia"
},
"Media Players (": {
"Media Players (": "Reprodutores de Mídia("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": ""
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "Memória"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": ""
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": ""
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "Monitor de velocidades de download e upload da rede"
},
"Never": {
"Never": ""
},
"New": {
"New": "Novo"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "Temperatura Noturna"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": ""
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "Prioridade Normal"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": ""
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": ""
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "Energia & Segurança"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "Confirmação de Ação de Energia"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "Opções de Energia"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "Degradação do Perfil de Energia"
},
"Power Profile OSD": {
"Power Profile OSD": ""
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "Ajustar todos os tamanhos de fonte"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "Escanear"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "Selecionar espessura da fonte"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "Selecionar monitor para configurar papel de parede"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "Selecionar tema do som do sistema"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Selecione o algoritmo usado para cores baseadas no papel de parede"
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "Configurações"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: Apagar tudo • Esc: Fechar"
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": ""
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": ""
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "Ajuste de Tamanho"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "Ordenar Alfabeticamente"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "Tema do Som"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "Espaçador"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "Apoie o Desenvolvimento"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "Superfície"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "Monitoramento do Sistema:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "Bandeja do Sistema"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "Área de ícones de notificações do sistema"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "Notificações toast do sistema"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "Plugins de terceiros são criados pela comunidade e não têm suporte oficial do DankMaterialShell.\\n\\nEsses plugins podem representar riscos à segurança e à privacidade - instale por sua conta e risco."
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "Este widget mantém a GPU ativa, podendo reduzir a duração da bateria. Não recomendado em laptops com gráficos híbridos."
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "Hora & Clima"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": ""
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "Para atualizar, execute o seguinte comando:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "Mensagens Toast"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "Efeito de Transição"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "Desligar monitores depois de"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": ""
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "Efeito visual usado na mudança do papel de parede"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "Volume Alterado"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "Seletor de Áreas de Trabalho"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": ""
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "Você tem mudanças não salvas. Deseja salvar antes de abrir um arquivo?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": ""
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": ""
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "eventos"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctl não disponível - integração com bloqueio requer conexão de socket DMS"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "matugen não detectado - tematização dinâmica não disponível"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "oficial"
},
"profile image file browser title": {
"Select Profile Image": ""
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": ""
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": ""
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "Instale apenas de fontes confiáveis"
},

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": ""
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- 给个 Star ⭐来表示支持吧"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1个事件"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "24小时制"
},
"24-hour format": {
"24-hour format": "24小时制"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "第三方"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "七日天气预报"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "已存在同名文件,是否覆盖?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": ""
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": ""
},
@@ -128,6 +170,9 @@
"All": {
"All": "全部"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "每天"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "始终显示 OSD 百分比"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": "总显示的图标"
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "电池电量与电源管理"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "将锁屏绑定到来自 loginctl 的 dbus 信号。如使用外部锁屏程序,请禁用此项"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "电池容量"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": "大小写指示灯"
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": "选择OSD在屏幕上出现的位置"
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": ""
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": "在启动时关闭概览"
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "覆盖颜色"
},
"Color Picker": {
"Color Picker": "取色器"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "白天模式色温"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "合成器"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "已应用配置"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "控制当前播放的媒体"
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": "控制所有弹出窗口、模态及其内容层DankDash、设置、应用抽屉、控制中心等的不透明度"
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "复制进程名"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "圆角半径0 = 直角)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "自定义"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "自定义位置"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "自定义电源操作"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "自定义透明度"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearch 不可用"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": "暗色模式"
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": "显示名称格式"
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "显示一个包含固定和运行中应用的程序坞,可放置在屏幕四边任意位置"
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": "通过网格而非列表显示电源菜单"
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": "显示设置 "
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "在OSD弹窗中默认显示音量与亮度数值"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "显示"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "程序坞"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "程序坞位置"
},
"Dock Transparency": {
"Dock Transparency": "程序坞透明度"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "域(可选)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": "启用状态栏"
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "显示 GPU 温度"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "文件信息"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "查找文本"
},
"Find in note...": {
"Find in note...": "在便签中查找..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "伽玛控制不可用,需要 DMS API v6+。"
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "Github:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "壁纸轮换频率"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": ""
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "包含过渡效果"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "结束进程"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "上次启动于 %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "锁屏"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "锁屏格式"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "注销"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "长文本"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": "需要纸张"
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "媒体播放器设置"
},
"Media Players (": {
"Media Players (": "媒体播放器 ("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": "媒体音量OSD"
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "内存"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": "麦克风"
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": "OSD麦克风静音"
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "显示网络下载与上传速度"
},
"Never": {
"Never": ""
},
"New": {
"New": "新建"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "夜间色温"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": "无"
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "标准通知"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": "未检测到出纸盒"
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": "位置: "
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "电源与安全"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "电源操作确认"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "电源菜单"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "电源配置性能下降"
},
"Power Profile OSD": {
"Power Profile OSD": "OSD电源配置"
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "缩放所有字体大小"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "扫描"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "选择字体粗细"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "选择要设置壁纸的屏幕"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "选择系统声音主题"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "选择从壁纸取色的配色方案"
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "设置"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: 清空 • Esc: 关闭"
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": "显示重启 DMS"
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": "显示挂起"
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "尺寸偏移"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "按字母顺序排序"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "声音主题"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "空白占位"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "支持开发"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "表面色"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "系统监测:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "系统托盘"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "系统通知区域图标"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "系统弹出式通知"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "第三方插件由社区开发DankMaterialShell 不提供官方支持。\\n\\n这些插件可能存在隐私和安全隐患请自行承担风险。"
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "此组件会阻止 GPU 进入省电状态,可能会显著影响笔记本的电池续航。不建议在配备混合显卡的笔记本上使用。"
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "时间与天气"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": "超时"
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "请运行以下命令以更新:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "弹出式信息"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "过渡效果"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "在此时间后关闭显示器"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": ""
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "壁纸切换时的动画效果"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "音量变化"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "工作区切换器"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": ""
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "检测到未保存的更改,是否在打开文件前保存?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": "选择自定义主题"
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": "选择壁纸"
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "事件"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctl 不可用 - 启用锁定集成需连接 DMS socket"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "未检测到 Matugen动态主题不可用"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "官方"
},
"profile image file browser title": {
"Select Profile Image": "选择个人信息图像"
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": "设置"
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": "选择壁纸位置"
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "• 仅从可信来源安装"
},

View File

@@ -1,4 +1,7 @@
{
"%1 DMS bind(s) may be overridden by config binds that come after the include.": {
"%1 DMS bind(s) may be overridden by config binds that come after the include.": ""
},
"%1 adapter(s), none connected": {
"%1 adapter(s), none connected": "%1 個轉接器,未連接"
},
@@ -32,21 +35,57 @@
"- Support Us With a Star ⭐": {
"- Support Us With a Star ⭐": "- 給我們點個 Star ⭐ 來支持我們"
},
"0 = square corners": {
"0 = square corners": ""
},
"1 event": {
"1 event": "1 個活動"
},
"1 minute": {
"1 minute": ""
},
"1 second": {
"1 second": ""
},
"10 minutes": {
"10 minutes": ""
},
"10 seconds": {
"10 seconds": ""
},
"15 seconds": {
"15 seconds": ""
},
"2 minutes": {
"2 minutes": ""
},
"24-Hour Format": {
"24-Hour Format": "24 小時制"
},
"24-hour format": {
"24-hour format": "24 小時制"
},
"3 seconds": {
"3 seconds": ""
},
"30 seconds": {
"30 seconds": ""
},
"3rd party": {
"3rd party": "第三方"
},
"5 minutes": {
"5 minutes": ""
},
"5 seconds": {
"5 seconds": ""
},
"7-Day Forecast": {
"7-Day Forecast": "七天氣象預報"
},
"8 seconds": {
"8 seconds": ""
},
"A file with this name already exists. Do you want to overwrite it?": {
"A file with this name already exists. Do you want to overwrite it?": "檔案名稱已存在。是否要覆蓋它?"
},
@@ -86,6 +125,9 @@
"Active": {
"Active": "啟用"
},
"Active Lock Screen Monitor": {
"Active Lock Screen Monitor": ""
},
"Active: ": {
"Active: ": "啟用:"
},
@@ -128,6 +170,9 @@
"All": {
"All": "所有"
},
"All Monitors": {
"All Monitors": ""
},
"All day": {
"All day": "全天"
},
@@ -140,6 +185,9 @@
"Always Show OSD Percentage": {
"Always Show OSD Percentage": "OSD 始終顯示百分比"
},
"Always Show Percentage": {
"Always Show Percentage": ""
},
"Always on icons": {
"Always on icons": "始終顯示圖示"
},
@@ -335,6 +383,9 @@
"Battery level and power management": {
"Battery level and power management": "電量與電源管理"
},
"Behavior": {
"Behavior": ""
},
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": {
"Bind lock screen to dbus signals from loginctl. Disable if using an external lock screen": "將鎖定畫面綁定到 loginctl 的 dbus 訊號。如果使用外部鎖屏,請停用"
},
@@ -434,6 +485,9 @@
"Capacity": {
"Capacity": "容量"
},
"Caps Lock": {
"Caps Lock": ""
},
"Caps Lock Indicator": {
"Caps Lock Indicator": "大小寫鎖定指示器"
},
@@ -488,6 +542,9 @@
"Choose where on-screen displays appear on screen": {
"Choose where on-screen displays appear on screen": "選擇螢幕顯示出現在螢幕上的位置"
},
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": {
"Choose which monitor shows the lock screen interface. Other monitors will display a solid color for OLED burn-in protection.": ""
},
"Cipher": {
"Cipher": "密碼"
},
@@ -530,12 +587,18 @@
"Close Overview on Launch": {
"Close Overview on Launch": "啟動時關閉概覽"
},
"Color Mode": {
"Color Mode": ""
},
"Color Override": {
"Color Override": "顏色覆蓋"
},
"Color Picker": {
"Color Picker": "顏色選擇器"
},
"Color displayed on monitors without the lock screen": {
"Color displayed on monitors without the lock screen": ""
},
"Color temperature for day time": {
"Color temperature for day time": "白天螢幕的顏色溫度"
},
@@ -578,6 +641,9 @@
"Compositor": {
"Compositor": "合成器"
},
"Config action: %1": {
"Config action: %1": ""
},
"Configuration activated": {
"Configuration activated": "配置已啟動"
},
@@ -629,6 +695,9 @@
"Control currently playing media": {
"Control currently playing media": "控制目前播放器"
},
"Controls opacity of all popouts, modals, and their content layers": {
"Controls opacity of all popouts, modals, and their content layers": ""
},
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": {
"Controls opacity of all popouts, modals, and their content layers (DankDash, Settings, App Drawer, Control Center, etc.)": "控制所有彈出式介面、模態對話框及其內容層級的不透明度 (適用於 DankDash、設定、應用程式抽屜、控制中心等)"
},
@@ -650,6 +719,9 @@
"Copy Process Name": {
"Copy Process Name": "複製程序名"
},
"Corner Radius": {
"Corner Radius": ""
},
"Corner Radius (0 = square corners)": {
"Corner Radius (0 = square corners)": "圓角半徑 (0 = 方角)"
},
@@ -686,12 +758,33 @@
"Custom": {
"Custom": "自訂"
},
"Custom Duration": {
"Custom Duration": ""
},
"Custom Hibernate Command": {
"Custom Hibernate Command": ""
},
"Custom Location": {
"Custom Location": "自訂位置"
},
"Custom Lock Command": {
"Custom Lock Command": ""
},
"Custom Logout Command": {
"Custom Logout Command": ""
},
"Custom Power Actions": {
"Custom Power Actions": "自訂電源選項"
},
"Custom Power Off Command": {
"Custom Power Off Command": ""
},
"Custom Reboot Command": {
"Custom Reboot Command": ""
},
"Custom Suspend Command": {
"Custom Suspend Command": ""
},
"Custom Transparency": {
"Custom Transparency": "自訂透明度"
},
@@ -746,6 +839,9 @@
"DankSearch not available": {
"DankSearch not available": "DankSearch 不可用"
},
"DankShell & System Icons (requires restart)": {
"DankShell & System Icons (requires restart)": ""
},
"Dark Mode": {
"Dark Mode": "深色主題"
},
@@ -842,6 +938,9 @@
"Display Name Format": {
"Display Name Format": "顯示名稱格式"
},
"Display a dock with pinned and running applications": {
"Display a dock with pinned and running applications": ""
},
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": {
"Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen": "顯示一個帶有固定和正在運行的應用程式的 Dock這些應用程式可以放置在螢幕的頂部、底部、左側或右側邊緣"
},
@@ -863,12 +962,18 @@
"Display power menu actions in a grid instead of a list": {
"Display power menu actions in a grid instead of a list": "以網格而非列表顯示電源選單操作"
},
"Display seconds in the clock": {
"Display seconds in the clock": ""
},
"Display settings for ": {
"Display settings for ": "顯示設定適用於"
},
"Display volume and brightness percentage values by default in OSD popups": {
"Display volume and brightness percentage values by default in OSD popups": "在 OSD 彈出視窗中預設顯示音量和亮度百分比值"
},
"Display volume and brightness percentage values in OSD popups": {
"Display volume and brightness percentage values in OSD popups": ""
},
"Displays": {
"Displays": "螢幕"
},
@@ -884,12 +989,21 @@
"Dock": {
"Dock": "Dock"
},
"Dock & Launcher": {
"Dock & Launcher": ""
},
"Dock Position": {
"Dock Position": "Dock 位置"
},
"Dock Transparency": {
"Dock Transparency": "Dock 透明度"
},
"Dock Visibility": {
"Dock Visibility": ""
},
"Docs": {
"Docs": ""
},
"Domain (optional)": {
"Domain (optional)": "網域 (可選)"
},
@@ -938,6 +1052,9 @@
"Enable Bar": {
"Enable Bar": "啟用欄"
},
"Enable Do Not Disturb": {
"Enable Do Not Disturb": ""
},
"Enable GPU Temperature": {
"Enable GPU Temperature": "啟用 GPU 溫度"
},
@@ -1148,12 +1265,21 @@
"File Information": {
"File Information": "檔案資訊"
},
"Files": {
"Files": ""
},
"Find in Text": {
"Find in Text": "尋找文字"
},
"Find in note...": {
"Find in note...": "尋找筆記..."
},
"Fine-tune animation timing in milliseconds": {
"Fine-tune animation timing in milliseconds": ""
},
"First Time Setup": {
"First Time Setup": ""
},
"Fix Now": {
"Fix Now": ""
},
@@ -1226,6 +1352,9 @@
"Gamma control not available. Requires DMS API v6+.": {
"Gamma control not available. Requires DMS API v6+.": "Gamma 控制不可用。需要 DMS API v6+。"
},
"GitHub": {
"GitHub": ""
},
"Github:": {
"Github:": "Github:"
},
@@ -1310,6 +1439,9 @@
"Hourly Forecast": {
"Hourly Forecast": ""
},
"How long to hold the button to confirm the action": {
"How long to hold the button to confirm the action": ""
},
"How often to change wallpaper": {
"How often to change wallpaper": "多久更換一次桌布"
},
@@ -1355,6 +1487,9 @@
"Import VPN": {
"Import VPN": "匯入 VPN"
},
"Inactive Monitor Color": {
"Inactive Monitor Color": ""
},
"Include Transitions": {
"Include Transitions": "包括過渡"
},
@@ -1424,6 +1559,9 @@
"Kill Process": {
"Kill Process": "結束程序"
},
"Ko-fi": {
"Ko-fi": ""
},
"Last launched %1": {
"Last launched %1": "上次啟動於 %1"
},
@@ -1499,6 +1637,9 @@
"Lock Screen": {
"Lock Screen": "鎖定螢幕"
},
"Lock Screen Display": {
"Lock Screen Display": ""
},
"Lock Screen Format": {
"Lock Screen Format": "鎖定螢幕格式"
},
@@ -1508,6 +1649,9 @@
"Log Out": {
"Log Out": "登出"
},
"Long": {
"Long": ""
},
"Long Text": {
"Long Text": "長文字"
},
@@ -1586,15 +1730,24 @@
"Media Needed": {
"Media Needed": "需要媒體"
},
"Media Player": {
"Media Player": ""
},
"Media Player Settings": {
"Media Player Settings": "媒體播放設定"
},
"Media Players (": {
"Media Players (": "媒體播放 ("
},
"Media Volume": {
"Media Volume": ""
},
"Media Volume OSD": {
"Media Volume OSD": "媒體音量 OSD"
},
"Medium": {
"Medium": ""
},
"Memory": {
"Memory": "記憶體"
},
@@ -1607,6 +1760,9 @@
"Microphone": {
"Microphone": "麥克風"
},
"Microphone Mute": {
"Microphone Mute": ""
},
"Microphone Mute OSD": {
"Microphone Mute OSD": "麥克風靜音 OSD"
},
@@ -1691,6 +1847,9 @@
"Network download and upload speed display": {
"Network download and upload speed display": "顯示網路下載跟上傳速度"
},
"Never": {
"Never": ""
},
"New": {
"New": "新"
},
@@ -1715,6 +1874,9 @@
"Night Temperature": {
"Night Temperature": "夜間色溫"
},
"Niri Integration": {
"Niri Integration": ""
},
"Niri compositor actions (focus, move, etc.)": {
"Niri compositor actions (focus, move, etc.)": ""
},
@@ -1790,6 +1952,9 @@
"None": {
"None": "無"
},
"Normal Font": {
"Normal Font": ""
},
"Normal Priority": {
"Normal Priority": "普通優先級"
},
@@ -1898,6 +2063,9 @@
"Output Tray Missing": {
"Output Tray Missing": "輸出托盤遺失"
},
"Overridden by config": {
"Overridden by config": ""
},
"Override": {
"Override": ""
},
@@ -2015,9 +2183,15 @@
"Position: ": {
"Position: ": "位置:"
},
"Possible Override Conflicts": {
"Possible Override Conflicts": ""
},
"Power & Security": {
"Power & Security": "電源與安全"
},
"Power & Sleep": {
"Power & Sleep": ""
},
"Power Action Confirmation": {
"Power Action Confirmation": "電源操作確認"
},
@@ -2030,12 +2204,18 @@
"Power Options": {
"Power Options": "電源選項"
},
"Power Profile": {
"Power Profile": ""
},
"Power Profile Degradation": {
"Power Profile Degradation": "電源配置降級"
},
"Power Profile OSD": {
"Power Profile OSD": "電源設定檔 OSD"
},
"Power source": {
"Power source": ""
},
"Precipitation Chance": {
"Precipitation Chance": ""
},
@@ -2240,6 +2420,9 @@
"Scale all font sizes": {
"Scale all font sizes": "縮放所有字體大小"
},
"Scale all font sizes throughout the shell": {
"Scale all font sizes throughout the shell": ""
},
"Scan": {
"Scan": "掃描"
},
@@ -2318,6 +2501,9 @@
"Select font weight": {
"Select font weight": "選擇字體粗細"
},
"Select font weight for UI text": {
"Select font weight for UI text": ""
},
"Select monitor to configure wallpaper": {
"Select monitor to configure wallpaper": "選擇指定螢幕桌布"
},
@@ -2330,6 +2516,9 @@
"Select system sound theme": {
"Select system sound theme": "選擇系統音效主題"
},
"Select the font family for UI text": {
"Select the font family for UI text": ""
},
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "請選擇調色板演算法,以桌布的顏色為基底。"
},
@@ -2360,12 +2549,18 @@
"Settings": {
"Settings": "設定"
},
"Setup": {
"Setup": ""
},
"Shell": {
"Shell": ""
},
"Shift+Del: Clear All • Esc: Close": {
"Shift+Del: Clear All • Esc: Close": "Shift+Del: 清除所有 • Esc: 關閉"
},
"Short": {
"Short": ""
},
"Shortcuts": {
"Shortcuts": ""
},
@@ -2405,6 +2600,9 @@
"Show Restart DMS": {
"Show Restart DMS": "顯示重新啟動 DMS"
},
"Show Seconds": {
"Show Seconds": ""
},
"Show Suspend": {
"Show Suspend": "顯示暫停"
},
@@ -2498,12 +2696,21 @@
"Size Offset": {
"Size Offset": "大小偏移"
},
"Sizing": {
"Sizing": ""
},
"Sort Alphabetically": {
"Sort Alphabetically": "按字母順序排序"
},
"Sorting & Layout": {
"Sorting & Layout": ""
},
"Sound Theme": {
"Sound Theme": "音效主題"
},
"Sounds": {
"Sounds": ""
},
"Spacer": {
"Spacer": "空白間隔"
},
@@ -2552,6 +2759,9 @@
"Support Development": {
"Support Development": "支援開發"
},
"Suppress notification popups while enabled": {
"Suppress notification popups while enabled": ""
},
"Surface": {
"Surface": "表面"
},
@@ -2591,6 +2801,9 @@
"System Monitoring:": {
"System Monitoring:": "系統監視器:"
},
"System Sounds": {
"System Sounds": ""
},
"System Tray": {
"System Tray": "系統匣"
},
@@ -2609,6 +2822,9 @@
"System notification area icons": {
"System notification area icons": "顯示常駐程式狀態圖示和系統通知"
},
"System sounds are not available. Install canberra-gtk-play for sound support.": {
"System sounds are not available. Install canberra-gtk-play for sound support.": ""
},
"System toast notifications": {
"System toast notifications": "系統快顯通知"
},
@@ -2657,6 +2873,9 @@
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "第三方插件由社群創建,不受 DankMaterialShell 官方支援。\\n\\n這些插件可能會帶來安全性和隱私風險 - 安裝後風險自負。"
},
"This bind is overridden by config.kdl": {
"This bind is overridden by config.kdl": ""
},
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": {
"This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.": "此部件可防止 GPU 電源關閉,這會嚴重影響筆記型電腦的電池續航時間。不建議在配備混合顯示卡的筆記型電腦上使用此功能。"
},
@@ -2669,9 +2888,21 @@
"Time & Weather": {
"Time & Weather": "時間與天氣"
},
"Time Format": {
"Time Format": ""
},
"Timed Out": {
"Timed Out": "逾時"
},
"Timeout for critical priority notifications": {
"Timeout for critical priority notifications": ""
},
"Timeout for low priority notifications": {
"Timeout for low priority notifications": ""
},
"Timeout for normal priority notifications": {
"Timeout for normal priority notifications": ""
},
"Title": {
"Title": ""
},
@@ -2681,6 +2912,9 @@
"To update, run the following command:": {
"To update, run the following command:": "若要更新,請執行以下命令:"
},
"To use this DMS bind, remove or change the keybind in your config.kdl": {
"To use this DMS bind, remove or change the keybind in your config.kdl": ""
},
"Toast Messages": {
"Toast Messages": "快顯通知"
},
@@ -2720,12 +2954,21 @@
"Transition Effect": {
"Transition Effect": "切換動畫效果"
},
"Transparency": {
"Transparency": ""
},
"Turn off monitors after": {
"Turn off monitors after": "關閉螢幕之後"
},
"Type": {
"Type": ""
},
"Typography": {
"Typography": ""
},
"Typography & Motion": {
"Typography & Motion": ""
},
"Unavailable": {
"Unavailable": "不可用"
},
@@ -2867,6 +3110,9 @@
"Visual effect used when wallpaper changes": {
"Visual effect used when wallpaper changes": "桌布變更時所使用的視覺效果"
},
"Volume": {
"Volume": ""
},
"Volume Changed": {
"Volume Changed": "音量改變"
},
@@ -2969,6 +3215,12 @@
"Workspace Switcher": {
"Workspace Switcher": "工作區切換器"
},
"Workspaces": {
"Workspaces": ""
},
"Workspaces & Widgets": {
"Workspaces & Widgets": ""
},
"Yes": {
"Yes": "是"
},
@@ -2984,12 +3236,18 @@
"You have unsaved changes. Save before opening a file?": {
"You have unsaved changes. Save before opening a file?": "您有未儲存的變更。是否先保存再開檔案?"
},
"apps": {
"apps": ""
},
"custom theme file browser title": {
"Select Custom Theme": "選擇自訂主題"
},
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
"Select Wallpaper": "選擇桌布"
},
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl exists but is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": {
"dms/binds.kdl is not included in config.kdl. Custom keybinds will not work until this is fixed.": ""
},
@@ -3005,18 +3263,27 @@
"events": {
"events": "活動"
},
"files": {
"files": ""
},
"loginctl not available - lock integration requires DMS socket connection": {
"loginctl not available - lock integration requires DMS socket connection": "loginctl 不可用 - 鎖定整合需要 DMS 套接字連接"
},
"matugen not detected - dynamic theming unavailable": {
"matugen not detected - dynamic theming unavailable": "未偵測到 matugen - 動態主題不可用"
},
"minutes": {
"minutes": ""
},
"official": {
"official": "官方"
},
"profile image file browser title": {
"Select Profile Image": "選擇個人資料圖片"
},
"seconds": {
"seconds": ""
},
"settings window title": {
"Settings": "設定"
},
@@ -3029,6 +3296,15 @@
"wallpaper directory file browser title": {
"Select Wallpaper Directory": "選擇桌布目錄"
},
"wallpaper settings disable description": {
"Use an external wallpaper manager like swww, hyprpaper, or swaybg.": ""
},
"wallpaper settings disable toggle": {
"Disable Built-in Wallpapers": ""
},
"wallpaper settings external management": {
"External Wallpaper Management": ""
},
"• Install only from trusted sources": {
"• Install only from trusted sources": "• 僅從受信任的來源安裝"
},

File diff suppressed because it is too large Load Diff