Onde o papel de parede atual é armazenado no Kali Linux?

0

Eu tenho um script que define uma imagem exata como um papel de parede e eu quero verificar em cada corrida se ainda é a mesma imagem. Se não, ele pergunta se você deseja alterar o papel de parede novamente para esta imagem. Faz parte de um projeto maior e por enquanto funciona assim:

    O script
  1. detecta se há um arquivo .config.txt no diretório do usuário
  2. se não, pergunta se você deseja alterar seu plano de fundo
  3. .config.txt é criado durante este processo

Eu pesquisei uma resposta a essa pergunta em toda a internet. Infelizmente, a maioria dos tópicos está relacionada ao Ubuntu e eles não são úteis. Eu tentei localizar fundos comando, mas eu não vejo nada de legit e oh boy, eu procurei a maioria dos diretórios listados. Eu tenho procurado em .cache também, mas ainda nada.

    
por nospa 08.09.2016 / 13:33

2 respostas

1

Se você puder definir o arquivo com

gsettings set org.gnome.desktop.background picture-uri file:///path/to/the/file

então você pode pegar o arquivo com

gsettings get org.gnome.desktop.background picture-uri

Isso lhe dará uma string como 'file:///usr/share/images/desktop-base/desktop-background.xml' , que é legal, mas precisa ser analisada antes de podermos usá-la diretamente como um argumento para outro comando shell. Assim, podemos remover facilmente as cotações e a parte file:// com cut , como:

gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1

(Nota: o arquivo retornado é na verdade um arquivo XML para mim, mas eu não estou usando o GNOME, então não sei como isso funciona em um sistema ativo. Pode haver outra etapa de processamento que precisa acontecer aqui , antes que você possa começar a comparar arquivos.)

Como você já sabe o nome do arquivo com o qual deseja comparar, use cmp para comparar esses dois arquivos:

cmp my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)"

cmp definirá um valor de retorno de 0 (true), se os arquivos forem iguais, ou diferente de zero (false) se forem diferentes ou algo der errado. Podemos usar isso para decidir o que fazer a seguir, talvez usando o operador || , que executará um comando apenas se o comando anterior retornou diferente de zero (falso). Também podemos suprimir a saída de cmp com a opção -s . Isso nos dá esse comando que você poderia, por exemplo, executar como uma tarefa cron normal:

cmp -s my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)" || gsettings set org.gnome.desktop.background picture-uri file:///full/path/to/my/file.jpg
    
por 09.09.2016 / 18:18
6

As imagens de papéis de parede Kali são armazenadas em:

/usr/share/images/desktop-base/

O papel de parede atual é definido vinculando /etc/alternatives/desktop-background ao arquivo .png em /usr/share/images/desktop-base/ que você gostaria de definir como; embora você possa vinculá-lo a um arquivo .png em qualquer outra pasta escolhida.

    
por 08.09.2016 / 14:22