O Kleopatra permite ao administrador (e aos utilizadores especializados) configurar a lista de arquivadores que estão presentes na janela para Assinar/Encriptar os Ficheiros.
Cada arquivador está definido no libkleopatrarc como um grupo Archive Definition # separado, com as seguintes chaves obrigatórias: n
extensionsUma lista, separa por vírgulas, das extensões de ficheiros que indicam normalmente este formato de arquivo.
idUm ID único que é usado para identificar este arquivador internamente. Em caso de dúvida, use o nome do comando.
Name(traduzido)O nome visível para o utilizador do arquivador, tal como aparece na lista correspondente na janela para Assinar/Encriptar os Ficheiros.
pack-commandO comando real usado para arquivar os ficheiros. Poderá usar qualquer comando, desde que não seja necessária qualquer linha de comandos para o executar. O programa é pesquisado com a variável de ambiente
PATH, a menos que tenha usado uma localização absoluta para o ficheiro. Existe o suporte para aspas, caso tenha sido utilizada uma linha de comandos:pack-command="/opt/ZIP v2.32/bin/zip" -r -
Nota
Dado que a barra invertida (\) é um carácter de escape nos ficheiros de configuração do KDE, terá de os duplicar quando aparecerem nos nomes dos ficheiros:
pack-command=C:\\Programas\\GNU\\tar\\gtar.exe ...
Contudo, para o comando em si (em oposição aos seus argumentos), poderá apenas usar as barras normais (/) como separadores entre pastas para todas as plataformas:
pack-command=C:/Programas/GNU/tar/gtar.exe ...
Isto não é suportado nos argumentos, porque a maioria dos programas do Windows® usam as barras normais para as opções. Por exemplo, o seguinte não irá funcionar, dado que o C:/programa-arquivo.bat é um argumento do cmd.exe, e o / não será assim convertido para \ nos argumentos, somente nos comandos:
pack-command=cmd.exe C:/programa-arquivo.bat
Este comando deverá sim ser descrito como:
pack-command=cmd.exe C:\\programa-arquivo.bat
Existem três formas de passar os nomes dos ficheiros ao comando de arquivo. Para cada uma delas, o pack-command oferece uma sintaxe em particular:
Como argumentos da linha de comandos.
Exemplo (tar):
pack-command=tar cf -
Exemplo (zip):
pack-command=zip -r - %f
Nesse caso, os nomes dos ficheiros são passados na linha de comandos, tal como faria ao usar a linha de comandos. O Kleopatra não usa nenhuma linha de comandos para executar o comando. Como tal, esta é uma forma segura de passar os nomes dos ficheiros, mas, se bem que poderá ter algumas restrições quanto ao tamanho da linha de comandos em algumas plataformas. Um
%fliteral, se estiver presente, será substituído pelos nomes dos ficheiros a arquivar. Caso contrário, os nomes dos ficheiros serão adicionados à linha de comandos. Como tal, o exemplo para o ZIP, acima descrito, seria escrito de forma equivalente da seguinte forma:pack-command=zip -r -
Através do 'standard-in' (STDIN), separado por mudanças de linha: coloque antes um
|.Exemplo ('tar' da GNU):
pack-command=|gtar cf - -T-
Exemplo (ZIP):
pack-command=|zip -@ -
Neste caso, os nomes dos ficheiros são passados ao programa de arquivo pelo stdin, um por cada linha. Isto evita os problemas nas plataformas que colocam um limite baixo no número de argumentos permitido pela linha de comandos, mas não resulta quando os nomes dos ficheiros contêm de facto mudanças de linha nos seus nomes.
Nota
O Kleopatra só suporta de momento o LF como separador de linhas, não suportando o CRLF. Isto poderá mudar nas próximas versões, dependendo das reacções do utilizador.
Através do 'standard-in', separado por 'bytes' NUL: coloque anteriormente
0|.Exemplo ('tar' da GNU):
pack-command=0|gtar cf - -T- --null
Este é igual ao anterior, com a diferença que são usados 'bytes' NUL (vazios) para separar os nomes dos ficheiros. Dado que os 'bytes' NUL são proibidos nos nomes dos ficheiros, esta é a forma mais robusta de passar nomes de ficheiros, só que infelizmente nem todos os programas a suportam.