Tipo de plugin · .json
Adaptadores — ensine um novo OS ao DeskSSH
Um adaptador mapeia o catálogo de capacidades do DeskSSH aos comandos de uma família de sistema operacional específica. É como a área de trabalho chega além dos OS que já conhece.
Um adaptador é um único manifesto JSON — sem código no host. Por ser dado puro, cada capacidade é um template de comando declarativo mais uma regra para parsear a saída em registros. Nunca se executa nada arbitrário no remoto.
O campo osSupport lista os IDs de os-release que o adaptador suporta (por exemplo fedora, rhel, centos). Ao conectar, o DeskSSH escolhe o adaptador cujo osSupport combina com o host e executa seus templates para cada capacidade que o usuário aciona.
Coloque o arquivo em ~/.deskssh/plugins/adapters/, ou importe por Configurações → Importar. Essa é toda a distribuição: um único arquivo revisável.
{
"schema": 1,
"kind": "adapter",
"id": "fedora",
"name": "Fedora / RHEL",
"version": "0.1.0",
"author": { "name": "you", "github": "you" },
"license": "AGPL-3.0-or-later",
"contract": "^0.1.0",
"osSupport": ["fedora", "rhel", "centos"],
"capabilities": {
"listServices": {
"template": "systemctl list-units --type=service --all --plain --no-pager",
"normalize": {
"kind": "records",
"columnDelimiter": "\\s+",
"columns": ["unit", "load", "active", "sub", "description"]
}
}
}
} - osSupport
- IDs / famílias de os-release que o adaptador suporta, ex. ["fedora","rhel"].
- contract
- Faixa do Contract (catálogo de capacidades) que ele implementa, ex. ^0.1.0.
- capabilities
- Um mapa capacidade → { template, normalize }. Só declarativo — nunca uma função.
- normalize
- Uma spec de records: columnDelimiter + columns que transformam a saída em linhas.
É assim que o DeskSSH cresce além do Debian
O core traz hoje um adaptador da família Debian, mas o modelo é aberto: escreva um adaptador para a sua distro e o DeskSSH a fala — sem mexer no core.