# Copiado O histórico da área de transferência do Windows, no Linux Mint. Aperte **Win+V** e ele aparece, no visual do Windows 11. Clique em um item e ele é colado na hora. ## Instalar O repositório é **privado**, então o instalador precisa de um token do Gitea (Configurações → Aplicações, escopo `read:repository`): ```bash export GITEA_TOKEN=... # seu token curl -fsSL -H "Authorization: token $GITEA_TOKEN" \ https://git.lucasrguerra.dev.br/lucasrguerra/copiado/raw/branch/main/instalar.sh | bash ``` Baixa o pacote `.deb` mais recente das [Releases](https://git.lucasrguerra.dev.br/lucasrguerra/copiado/releases), instala, cria o atalho Win+V e já deixa rodando. Pede sua senha (sudo). Para **atualizar**, rode o mesmo comando de novo. ## Usar | Ação | Como | |---|---| | Abrir / fechar | **Win+V** | | Colar um item | clique, ou setas + **Enter** | | Fixar (não some ao limpar) | ícone de alfinete | | Apagar um item | ícone da lixeira ou tecla **Delete** | | Apagar tudo (menos os fixados) | **Limpar tudo** | | Fechar sem colar | **Esc** ou clicar fora | Guarda os 25 últimos itens (texto e imagens). Como no Windows, ao reiniciar o PC só os itens **fixados** continuam; o resto existe apenas na memória. ## Privacidade e segurança A área de transferência pode ter senhas, tokens e dados pessoais, então o Copiado: - **Só grava no disco os itens fixados**, em `~/.local/share/copiado/`, com permissão só para você (pasta `700`, arquivos `600`). - **Não guarda textos acima de 1 MB nem imagens acima de 20 MB.** - **Valida o arquivo de histórico** ao abrir: entradas estranhas ou imagens fora da pasta do Copiado são descartadas. - **Não usa rede** e não executa nada do que foi copiado. O instalador confere o checksum SHA-256 do pacote antes de instalar, e a esteira de CI/CD roda o [Trivy](https://trivy.dev) (vulnerabilidades, segredos e configurações) em todo push de branch, em toda release e toda segunda-feira. Um HIGH ou CRITICAL barra a esteira. ## Desenvolvimento - `copiado.py`: o aplicativo inteiro (GTK 3 + xdotool). - `empacotamento/gerar-deb.sh `: gera `dist/copiado_all.deb`. - `.gitea/workflows/`: `ci.yml` (sintaxe, shellcheck, Trivy, pacote) roda nas branches e toda segunda; `release.yml` valida a `main` e, numa tag `vX.Y.Z`, publica a release com o `.deb`, o `SHA256SUMS` e as notas do [CHANGELOG](CHANGELOG.md). Uma tag num commit que já passou na `main` não repete a suíte. - Para lançar: mova o que está em "Não lançado" do CHANGELOG para a versão nova, faça o commit e envie a tag (`git tag vX.Y.Z && git push gitea vX.Y.Z`). ## Desinstalar ```bash curl -fsSL -H "Authorization: token $GITEA_TOKEN" \ https://git.lucasrguerra.dev.br/lucasrguerra/copiado/raw/branch/main/desinstalar.sh | bash ``` ## Comandos | Comando | Para quê | |---|---| | `copiado consertar` | **Win+V não abre ou o histórico está vazio?** Recria o atalho, faz o Cinnamon recarregá-lo e inicia o app se estiver parado. | | `copiado esquecer` | Apaga todo o histórico, inclusive os fixados. | | `copiado ajuda` | Lista os comandos. | Se mesmo depois do `copiado consertar` o Win+V não abrir, veja se outro atalho usa Win+V em *Configurações do Sistema → Teclado → Atalhos*. ## Publicar uma versão nova ```bash git tag v1.0.1 && git push origin v1.0.1 ``` O GitHub Actions gera o `copiado_all.deb`, testa a instalação e publica a release. Para gerar o pacote localmente: `empacotamento/gerar-deb.sh 1.0.1` (sai em `dist/`).