mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 21:42:51 -05:00
added keyboard layout widget (niri only)
This commit is contained in:
@@ -140,6 +140,11 @@ Item {
|
||||
"icon": "network_check",
|
||||
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined,
|
||||
"enabled": DgopService.dgopAvailable
|
||||
}, {
|
||||
"id": "keyboard_layout_name",
|
||||
"text": "Keyboard Layout Name",
|
||||
"description": "Displays the active keyboard layout and allows switching",
|
||||
"icon": "keyboard",
|
||||
}]
|
||||
property var defaultLeftWidgets: [{
|
||||
"id": "launcherButton",
|
||||
|
||||
@@ -138,6 +138,11 @@ Item {
|
||||
"icon": "network_check",
|
||||
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined,
|
||||
"enabled": DgopService.dgopAvailable
|
||||
}, {
|
||||
"id": "keyboard_layout_name",
|
||||
"text": "Keyboard Layout Name",
|
||||
"description": "Displays the active keyboard layout and allows switching",
|
||||
"icon": "keyboard",
|
||||
}]
|
||||
property var defaultLeftWidgets: [{
|
||||
"id": "launcherButton",
|
||||
|
||||
56
Modules/TopBar/KeyboardLayoutName.qml
Normal file
56
Modules/TopBar/KeyboardLayoutName.qml
Normal file
@@ -0,0 +1,56 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import qs.Common
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
import qs.Modules.ProcessList
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
readonly property real horizontalPadding: SettingsData.topBarNoBackground ? 0 : Math.max(Theme.spacingXS, Theme.spacingS * (widgetHeight / 30))
|
||||
|
||||
width: contentRow.implicitWidth + horizontalPadding * 2
|
||||
height: widgetHeight
|
||||
radius: SettingsData.topBarNoBackground ? 0 : Theme.cornerRadius
|
||||
|
||||
color: {
|
||||
if (SettingsData.topBarNoBackground) return "transparent"
|
||||
const baseColor = mouseArea.containsMouse ? Theme.primaryPressed : Theme.secondaryHover
|
||||
return Qt.rgba(baseColor.r, baseColor.g, baseColor.b,
|
||||
baseColor.a * Theme.widgetTransparency)
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
onClicked: {
|
||||
NiriService.cycleKeyboardLayout()
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
id: contentRow
|
||||
|
||||
anchors.centerIn: parent
|
||||
spacing: Theme.spacingS
|
||||
|
||||
StyledText {
|
||||
text: NiriService.getCurrentKeyboardLayoutName()
|
||||
font.pixelSize: Theme.fontSizeSmall
|
||||
color: Theme.surfaceText
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
|
||||
Behavior on color {
|
||||
ColorAnimation {
|
||||
duration: Theme.shortDuration
|
||||
easing.type: Theme.standardEasing
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -337,6 +337,8 @@ PanelWindow {
|
||||
return true
|
||||
case "network_speed_monitor":
|
||||
return DgopService.dgopAvailable
|
||||
case "keyboard_layout_name":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
@@ -386,6 +388,8 @@ PanelWindow {
|
||||
return separatorComponent
|
||||
case "network_speed_monitor":
|
||||
return networkComponent
|
||||
case "keyboard_layout_name":
|
||||
return keyboardLayoutNameComponent
|
||||
default:
|
||||
return null
|
||||
}
|
||||
@@ -1109,6 +1113,12 @@ PanelWindow {
|
||||
opacity: 0.3
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: keyboardLayoutNameComponent
|
||||
|
||||
KeyboardLayoutName {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user