1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

Added a Compact mode to the keyboard_layout_name widget. (#554)

* Added a Compact mode to the keyboard_layout_name widget.

* Added another root.currentLayout = "Unknown" that was missing.
This commit is contained in:
ahoyiski
2025-10-26 10:07:11 -03:00
committed by GitHub
parent 7863d03282
commit a90b00e5fe
4 changed files with 56 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ import qs.Widgets
BasePill {
id: root
property bool compactMode: SettingsData.keyboardLayoutNameCompactMode
property string currentLayout: ""
property string hyprlandKeyboard: ""
@@ -109,8 +110,31 @@ BasePill {
const data = JSON.parse(output)
const mainKeyboard = data.keyboards.find(kb => kb.main === true)
root.hyprlandKeyboard = mainKeyboard.name
if (mainKeyboard && mainKeyboard.active_keymap) {
root.currentLayout = mainKeyboard.active_keymap
if (mainKeyboard) {
const layout = mainKeyboard.layout
const variant = mainKeyboard.variant
const index = mainKeyboard.active_layout_index
if (root.compactMode && layout && variant && index !== undefined) {
const layouts = mainKeyboard.layout.split(",")
const variants = mainKeyboard.variant.split(",")
const index = mainKeyboard.active_layout_index
if (layouts[index] && variants[index] !== undefined) {
if (variants[index] === "") {
root.currentLayout = layouts[index]
} else {
root.currentLayout = layouts[index] + "-" + variants[index]
}
} else {
root.currentLayout = "Unknown"
}
} else if (mainKeyboard && mainKeyboard.active_keymap) {
root.currentLayout = mainKeyboard.active_keymap
} else {
root.currentLayout = "Unknown"
}
} else {
root.currentLayout = "Unknown"
}

View File

@@ -1781,6 +1781,9 @@ Item {
} else if (widgetId === "runningApps") {
SettingsData.setRunningAppsCompactMode(
value)
} else if (widgetId === "keyboard_layout_name") {
SettingsData.setKeyboardLayoutNameCompactMode(
value)
}
}
onControlCenterSettingChanged: (sectionId, widgetIndex, settingName, value) => {
@@ -1857,6 +1860,9 @@ Item {
} else if (widgetId === "runningApps") {
SettingsData.setRunningAppsCompactMode(
value)
} else if (widgetId === "keyboard_layout_name") {
SettingsData.setKeyboardLayoutNameCompactMode(
value)
}
}
onControlCenterSettingChanged: (sectionId, widgetIndex, settingName, value) => {
@@ -1933,6 +1939,9 @@ Item {
} else if (widgetId === "runningApps") {
SettingsData.setRunningAppsCompactMode(
value)
} else if (widgetId === "keyboard_layout_name") {
SettingsData.setKeyboardLayoutNameCompactMode(
value)
}
}
onControlCenterSettingChanged: (sectionId, widgetIndex, settingName, value) => {

View File

@@ -321,6 +321,7 @@ Column {
|| modelData.id === "music"
|| modelData.id === "focusedWindow"
|| modelData.id === "runningApps"
|| modelData.id === "keyboard_layout_name"
DankActionButton {
id: smallSizeButton
@@ -406,6 +407,7 @@ Column {
visible: modelData.id === "clock"
|| modelData.id === "focusedWindow"
|| modelData.id === "runningApps"
|| modelData.id === "keyboard_layout_name"
iconName: {
if (modelData.id === "clock")
return SettingsData.clockCompactMode ? "zoom_out" : "zoom_in"
@@ -413,6 +415,8 @@ Column {
return SettingsData.focusedWindowCompactMode ? "zoom_out" : "zoom_in"
if (modelData.id === "runningApps")
return SettingsData.runningAppsCompactMode ? "zoom_out" : "zoom_in"
if (modelData.id === "keyboard_layout_name")
return SettingsData.keyboardLayoutNameCompactMode ? "zoom_out" : "zoom_in"
return "zoom_in"
}
iconSize: 16
@@ -423,6 +427,8 @@ Column {
return SettingsData.focusedWindowCompactMode ? Theme.primary : Theme.outline
if (modelData.id === "runningApps")
return SettingsData.runningAppsCompactMode ? Theme.primary : Theme.outline
if (modelData.id === "keyboard_layout_name")
return SettingsData.keyboardLayoutNameCompactMode ? Theme.primary : Theme.outline
return Theme.outline
}
onClicked: {
@@ -438,6 +444,10 @@ Column {
root.compactModeChanged(
"runningApps",
!SettingsData.runningAppsCompactMode)
} else if (modelData.id === "keyboard_layout_name") {
root.compactModeChanged(
"keyboard_layout_name",
!SettingsData.keyboardLayoutNameCompactMode)
}
}
onEntered: {
@@ -450,6 +460,8 @@ Column {
tooltipText = SettingsData.focusedWindowCompactMode ? "Full Size" : "Compact"
} else if (modelData.id === "runningApps") {
tooltipText = SettingsData.runningAppsCompactMode ? "Full Size" : "Compact"
} else if (modelData.id === "keyboard_layout_name") {
tooltipText = SettingsData.keyboardLayoutNameCompactMode ? "Full Size" : "Compact"
}
const p = compactModeButton.mapToItem(null, compactModeButton.width / 2, 0)
compactTooltipLoader.item.show(tooltipText, p.x, p.y - 40, null)