1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 13:32:50 -05:00

keybinds: fix sh, fix screenshot-window options, empty args

part of #914
This commit is contained in:
bbedward
2026-01-12 09:35:30 -05:00
parent 1280bd047d
commit 49b322582d
4 changed files with 60 additions and 27 deletions

View File

@@ -325,24 +325,30 @@ func (n *NiriProvider) buildActionFromNode(bindNode *document.Node) string {
}
actionNode := bindNode.Children[0]
kdlStr := strings.TrimSpace(actionNode.String())
if kdlStr == "" {
actionName := actionNode.Name.String()
if actionName == "" {
return ""
}
return n.kdlActionToInternal(kdlStr)
}
func (n *NiriProvider) kdlActionToInternal(kdlAction string) string {
parts := n.parseActionParts(kdlAction)
if len(parts) == 0 {
return kdlAction
parts := []string{actionName}
for _, arg := range actionNode.Arguments {
val := arg.ValueString()
if val == "" {
parts = append(parts, `""`)
} else {
parts = append(parts, val)
}
}
for i, part := range parts {
if part == "" {
parts[i] = `""`
if actionNode.Properties != nil {
if val, ok := actionNode.Properties.Get("focus"); ok {
parts = append(parts, "focus="+val.String())
}
if val, ok := actionNode.Properties.Get("show-pointer"); ok {
parts = append(parts, "show-pointer="+val.String())
}
if val, ok := actionNode.Properties.Get("write-to-disk"); ok {
parts = append(parts, "write-to-disk="+val.String())
}
}