Take the catalogue's composition rules into the node-engine
ADR 0593 §7: the composer with its refusals leaves mesh-sdk, so mesh-sdk carries no composition rule. The catalogue functions only the node-engine's composition reaches (Resolve, Resolution's Compose, Declaration, DataItems, LeftOut, Rules and the rest, the settings, placeholder and template refusals, the rendering helpers) are copied with their tests into internal/compose/resolution; a method of a mesh-sdk shape becomes a function taking it first. The composition calls its own copies, and the captured catalogue its tests read lives here now, shared by mesh-compose's tests. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
# Written by the mesh (module triggerhappy, novox/hq ADR 0212). Replaced on every push.
|
||||
#
|
||||
# The daemon opens the input devices as root, then drops to the operator's account with its groups,
|
||||
# so every trigger runs as the account: it reaches the account's session bus and display, with no su
|
||||
# and no hard-coded user. Only the mesh's trigger file is read.
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/thd --triggers /etc/triggerhappy/triggers.d/mesh.conf --socket /run/thd.socket --user ${machine:account} --deviceglob /dev/input/event*
|
||||
@@ -0,0 +1,4 @@
|
||||
# The machine's hotkeys, written by the mesh (module triggerhappy, novox/hq ADR 0212). Replaced on
|
||||
# every push: a key is added by the module it belongs to, as a contribution to node-hotkeys.
|
||||
# A line is: the key, its state (1 pressed, 2 held, 0 released), the command.
|
||||
${contribution:node-hotkeys:trigger}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"module": "triggerhappy",
|
||||
"version": "1",
|
||||
"moved": true,
|
||||
"capabilities": [
|
||||
"service-manager"
|
||||
],
|
||||
"claims": [
|
||||
{
|
||||
"name": "node-hotkeys",
|
||||
"scope": "node"
|
||||
}
|
||||
],
|
||||
"tools": [
|
||||
"triggerhappy_keys",
|
||||
"triggerhappy_devices",
|
||||
"triggerhappy_dump",
|
||||
"triggerhappy_check"
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"id": "drop-ins",
|
||||
"type": "directory",
|
||||
"path": "/etc/systemd/system/triggerhappy.service.d",
|
||||
"mode": "0755",
|
||||
"unknown": "program"
|
||||
},
|
||||
{
|
||||
"id": "as-account",
|
||||
"type": "file",
|
||||
"path": "/etc/systemd/system/triggerhappy.service.d/mesh.conf",
|
||||
"mode": "0644",
|
||||
"template": "files/service.conf"
|
||||
},
|
||||
{
|
||||
"id": "triggers-dir",
|
||||
"type": "directory",
|
||||
"path": "/etc/triggerhappy/triggers.d",
|
||||
"mode": "0755",
|
||||
"unknown": "program"
|
||||
},
|
||||
{
|
||||
"id": "triggers",
|
||||
"type": "file",
|
||||
"path": "/etc/triggerhappy/triggers.d/mesh.conf",
|
||||
"mode": "0644",
|
||||
"template": "files/triggers.conf"
|
||||
},
|
||||
{
|
||||
"id": "service",
|
||||
"type": "service",
|
||||
"unit": "triggerhappy.service",
|
||||
"state": "running",
|
||||
"boot": "enabled",
|
||||
"restart-on": [
|
||||
"as-account",
|
||||
"triggers"
|
||||
]
|
||||
}
|
||||
],
|
||||
"build": {
|
||||
"artifacts": [
|
||||
{
|
||||
"name": "tools",
|
||||
"kind": "bundle",
|
||||
"language": "go",
|
||||
"system": "arch",
|
||||
"from": "cmd/triggerhappy-tools",
|
||||
"binary": "triggerhappy-tools",
|
||||
"loads": [
|
||||
"triggerhappy-tools"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "files",
|
||||
"kind": "archive",
|
||||
"from": "files"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user