Como a configuração de papéis de parede funciona no Ubuntu?

7

Uma das primeiras personalizações que qualquer novo usuário de qualquer sistema operacional gosta de fazer é definir seu próprio papel de parede! Sim, isso pode ser feito no Ubuntu também. Contanto que o usuário mantenha os poucos papéis de parede que vêm embutidos no Ubuntu, isso não deve ser um problema. Assim, o usuário tem que jogar na caixa de areia para evitar dores de cabeça desnecessárias. Pois assim que o usuário começa a selecionar suas próprias imagens ou um dos papéis de parede disponíveis gratuitamente na Web, as coisas começam a ficar complicadas.

Problema # 1:

  1. O usuário armazena um arquivo de imagem JPEG chamado bird.jpg em /home/user/Desktop .
  2. O usuário clica com o botão direito do mouse no ícone do arquivo e seleciona "definir como papel de parede".
  3. O arquivo é copiado de /home/user/Desktop para /home/user/Pictures/Wallpapers e o arquivo está definido como área de trabalho papel de parede.

Por que o arquivo precisa ser copiado? Por segurança? Caso o arquivo original seja movido ou excluído?

Problema # 2:

  1. O usuário abre /home/user/Pictures/Wallpapers .
  2. O usuário clica com o botão direito do mouse no ícone do arquivo para bird.jpg e seleciona "definir como papel de parede ".
  3. O arquivo é duplicado como bird (copy) .jpg na pasta atual e o arquivo está definido como papel de parede da área de trabalho.
  4. O usuário clica com o botão direito no bird.jpg novamente e seleciona "definir como papel de parede" novamente.
  5. O arquivo é duplicado como pássaro (outra cópia) .jpg na corrente pasta e o arquivo é definido como papel de parede da área de trabalho.

Por que é necessário criar dupes para definir um determinado arquivo como papel de parede?

Problema # 3:

  1. O usuário abre /home/user/Pictures/Wallpapers e exclui todos os arquivos nele.
  2. O usuário abre a caixa de diálogo Aparência.
  3. O usuário clica no botão de adição para adicionar uma imagem ao "Papel de parede" lista.
  4. O usuário navega para /home/user/Desktop , seleciona bird.jpg e clica no botão Abrir.
  5. A imagem é adicionada, mas não à lista "Papéis de parede". É adicionado para a lista "Pasta de Imagens".
  6. O usuário navega para /home/user/Pictures/ e encontra uma pasta vazia (exceto por uma subpasta).
  7. O usuário navega para /home/user/Pictures/Wallpapers e encontra um pasta vazia.

Por que o arquivo de imagem é adicionado à lista "Pasta de fotos" e não à lista "Papéis de parede"?

Se o arquivo for adicionado à lista "Pasta de imagens", por que a pasta /home/user/Pictures está vazia? Se "Pictures Folder" representa um nome de pasta, qual é o seu caminho de pesquisa?

Problema # 4:

  1. O usuário executa as etapas de 2 a 4 da descrição anterior do problema.
  2. O usuário fecha a caixa de diálogo Aparência.
  3. O usuário abre a caixa de diálogo Aparência.
  4. A lista "Pasta de fotos" agora ficou magicamente vazia.

O que eu gostaria de fazer é designar uma pasta específica na qual guardarei todas as fotos que eu desejo selecionar e usar como papel de parede da minha área de trabalho.

A razão pela qual eu me limito a uma pasta é por causa dos problemas que descrevi acima. Eu estou disposto a fazê-lo desta maneira, a fim de evitar dupes, porque eu costumo mudar o papel de parede, encontrando o arquivo que eu quero usar. Eu não vou procurar a caixa de diálogo de configurações correta primeiro e depois o arquivo. (Eu acho que estou fazendo errado da perspectiva dos evangelistas do Ubuntu.) Eu então uso o menu de contexto do mouse para fazer exatamente o que eu quero, e o Ubuntu tem essa opção, mas é mal implementado.

Portanto, estou disposto a contornar essa falha e usar a caixa de diálogo Aparência (a maneira "direita") e uma pasta específica a partir da qual posso selecionar papéis de parede usando a caixa de diálogo. Mas mesmo para que isso funcione, eu preciso me livrar do problema número 4, onde a caixa de diálogo Aparência não deseja exibir os arquivos ou locais que escolhi anteriormente para que ele me mostre como uma lista.

Como vocês lidam com isso? Basta ficar com os papéis de parede padrão ??? ...

    
por Samir 09.03.2016 / 17:18

1 resposta

3

Existem forças diferentes em jogo. A maneira canônica de alterar os papéis de parede é usar org.gnome.desktop.background picture-uri schema e key. A parte importante é que a imagem tem que ser um arquivo local .

No caso do problema # 4, o esquema está sendo alterado diretamente; Observe que todas as opções disponíveis nas configurações de aparência são de pastas locais.

no caso de outros problemas que você especificou, ele está sendo feito através do nautilus, e o nautilus tem a possibilidade de acessar unidades compartilhadas na rede, o que significa que o usuário pode tentar configurar a imagem de fundo de lá. Bem, lembra o que eu disse - a imagem deve ser local? Essa é a razão pela qual o nautilus copia o arquivo.

O código exato para isso é definido em nautilus-view.c file

static void
action_set_as_wallpaper_callback (GtkAction    *action,
                                  NautilusView *view)
{
        GList *selection;

        /* Copy the item to Pictures/Wallpaper since it may be
           remote. Then set it as the current wallpaper. */

Como contornar isso? Realmente não há como codificar no nautilus. Você pode querer arquivar uma solicitação de recurso com os desenvolvedores ou alterar a fonte você mesmo.

    
por Sergiy Kolodyazhnyy 27.03.2016 / 20:56