1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-25 14:02:53 -05:00

keyboard shortcuts: comprehensive keyboard shortcut management interface

- niri only for now
- requires quickshell-git, hidden otherwise
- Add, Edit, Delete keybinds
- Large suite of pre-defined and custom actions
- Works with niri 25.11+ include feature
This commit is contained in:
bbedward
2025-12-02 23:08:23 -05:00
parent a679be68b1
commit f92dc6f71b
17 changed files with 4105 additions and 863 deletions

View File

@@ -57,13 +57,32 @@ FocusScope {
}
Loader {
id: topBarLoader
id: keybindsLoader
anchors.fill: parent
active: root.currentIndex === 2
visible: active
focus: active
sourceComponent: KeybindsTab {
parentModal: root.parentModal
}
onActiveChanged: {
if (active && item) {
Qt.callLater(() => item.forceActiveFocus());
}
}
}
Loader {
id: topBarLoader
anchors.fill: parent
active: root.currentIndex === 3
visible: active
focus: active
sourceComponent: DankBarTab {
parentModal: root.parentModal
}
@@ -79,7 +98,7 @@ FocusScope {
id: widgetsLoader
anchors.fill: parent
active: root.currentIndex === 3
active: root.currentIndex === 4
visible: active
focus: active
@@ -96,7 +115,7 @@ FocusScope {
id: dockLoader
anchors.fill: parent
active: root.currentIndex === 4
active: root.currentIndex === 5
visible: active
focus: active
@@ -115,7 +134,7 @@ FocusScope {
id: displaysLoader
anchors.fill: parent
active: root.currentIndex === 5
active: root.currentIndex === 6
visible: active
focus: active
@@ -132,7 +151,7 @@ FocusScope {
id: networkLoader
anchors.fill: parent
active: root.currentIndex === 6
active: root.currentIndex === 7
visible: active
focus: active
@@ -149,7 +168,7 @@ FocusScope {
id: printerLoader
anchors.fill: parent
active: root.currentIndex === 7
active: root.currentIndex === 8
visible: active
focus: active
@@ -166,7 +185,7 @@ FocusScope {
id: launcherLoader
anchors.fill: parent
active: root.currentIndex === 8
active: root.currentIndex === 9
visible: active
focus: active
@@ -183,7 +202,7 @@ FocusScope {
id: themeColorsLoader
anchors.fill: parent
active: root.currentIndex === 9
active: root.currentIndex === 10
visible: active
focus: active
@@ -200,7 +219,7 @@ FocusScope {
id: powerLoader
anchors.fill: parent
active: root.currentIndex === 10
active: root.currentIndex === 11
visible: active
focus: active
@@ -217,7 +236,7 @@ FocusScope {
id: pluginsLoader
anchors.fill: parent
active: root.currentIndex === 11
active: root.currentIndex === 12
visible: active
focus: active
@@ -236,7 +255,7 @@ FocusScope {
id: aboutLoader
anchors.fill: parent
active: root.currentIndex === 12
active: root.currentIndex === 13
visible: active
focus: active

View File

@@ -22,62 +22,68 @@ Rectangle {
"icon": "schedule",
"tabIndex": 1
},
{
"text": I18n.tr("Keyboard Shortcuts"),
"icon": "keyboard",
"shortcutsOnly": true,
"tabIndex": 2
},
{
"text": I18n.tr("Dank Bar"),
"icon": "toolbar",
"tabIndex": 2
"tabIndex": 3
},
{
"text": I18n.tr("Widgets"),
"icon": "widgets",
"tabIndex": 3
"tabIndex": 4
},
{
"text": I18n.tr("Dock"),
"icon": "dock_to_bottom",
"tabIndex": 4
"tabIndex": 5
},
{
"text": I18n.tr("Displays"),
"icon": "monitor",
"tabIndex": 5
"tabIndex": 6
},
{
"text": I18n.tr("Network"),
"icon": "wifi",
"dmsOnly": true,
"tabIndex": 6
"tabIndex": 7
},
{
"text": I18n.tr("Printers"),
"icon": "print",
"cupsOnly": true,
"tabIndex": 7
"tabIndex": 8
},
{
"text": I18n.tr("Launcher"),
"icon": "apps",
"tabIndex": 8
"tabIndex": 9
},
{
"text": I18n.tr("Theme & Colors"),
"icon": "palette",
"tabIndex": 9
"tabIndex": 10
},
{
"text": I18n.tr("Power & Security"),
"icon": "power",
"tabIndex": 10
"tabIndex": 11
},
{
"text": I18n.tr("Plugins"),
"icon": "extension",
"tabIndex": 11
"tabIndex": 12
},
{
"text": I18n.tr("About"),
"icon": "info",
"tabIndex": 12
"tabIndex": 13
}
]
readonly property var sidebarItems: allSidebarItems.filter(item => {
@@ -85,6 +91,8 @@ Rectangle {
return false;
if (item.cupsOnly && !CupsService.cupsAvailable)
return false;
if (item.shortcutsOnly && !KeybindsService.available)
return false;
return true;
})