Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
024f7a7387 |
No files matched your search
@@ -32,8 +32,6 @@ só os itens **fixados** continuam; o resto existe apenas na memória.
|
|||||||
|
|
||||||
A área de transferência pode ter senhas, tokens e dados pessoais, então o Copiado:
|
A área de transferência pode ter senhas, tokens e dados pessoais, então o Copiado:
|
||||||
|
|
||||||
- **Ignora senhas de gerenciadores de senha** (KeePassXC, Bitwarden, 1Password etc.),
|
|
||||||
que marcam o que copiam pedindo para não entrar em histórico.
|
|
||||||
- **Só grava no disco os itens fixados**, em `~/.local/share/copiado/`, com
|
- **Só grava no disco os itens fixados**, em `~/.local/share/copiado/`, com
|
||||||
permissão só para você (pasta `700`, arquivos `600`).
|
permissão só para você (pasta `700`, arquivos `600`).
|
||||||
- **Não guarda textos acima de 1 MB nem imagens acima de 20 MB.**
|
- **Não guarda textos acima de 1 MB nem imagens acima de 20 MB.**
|
||||||
|
|||||||
-11
@@ -27,14 +27,6 @@ PASTA = os.path.join(GLib.get_user_data_dir(), "copiado")
|
|||||||
ARQ_HIST = os.path.join(PASTA, "historico.json")
|
ARQ_HIST = os.path.join(PASTA, "historico.json")
|
||||||
MAX_TEXTO = 1024 * 1024 # textos maiores que 1 MB não são guardados
|
MAX_TEXTO = 1024 * 1024 # textos maiores que 1 MB não são guardados
|
||||||
MAX_IMAGEM = 20 * 1024 * 1024 # imagens maiores que 20 MB (PNG) também não
|
MAX_IMAGEM = 20 * 1024 * 1024 # imagens maiores que 20 MB (PNG) também não
|
||||||
# Gerenciadores de senha (KeePassXC, Bitwarden, 1Password...) marcam o que
|
|
||||||
# copiam com estes formatos para pedir que não entre em histórico.
|
|
||||||
FORMATOS_SECRETOS = {
|
|
||||||
"x-kde-passwordManagerHint",
|
|
||||||
"application/x-nspasteboard-concealed-type",
|
|
||||||
"x-nspasteboard-concealed-type",
|
|
||||||
"ExcludeClipboardContentFromMonitorProcessing",
|
|
||||||
}
|
|
||||||
|
|
||||||
CSS = b"""
|
CSS = b"""
|
||||||
#fundo {
|
#fundo {
|
||||||
@@ -183,9 +175,6 @@ class App(Gtk.Application):
|
|||||||
|
|
||||||
# ---------- captura ----------
|
# ---------- captura ----------
|
||||||
def ao_copiar(self, clip, _evento):
|
def ao_copiar(self, clip, _evento):
|
||||||
ok, alvos = clip.wait_for_targets()
|
|
||||||
if ok and alvos and FORMATOS_SECRETOS & {a.name() for a in alvos}:
|
|
||||||
return # senha vinda de um gerenciador de senhas: não guarda
|
|
||||||
if clip.wait_is_image_available():
|
if clip.wait_is_image_available():
|
||||||
img = clip.wait_for_image()
|
img = clip.wait_for_image()
|
||||||
if img is None:
|
if img is None:
|
||||||
|
|||||||
Reference in new issue
Block a user