[DICA] Como personalizar / customizar as pastas XDG padrão do Ubuntu.

Iniciado por Sampayu, 21 de Novembro de 2019, 10:52

tópico anterior - próximo tópico

Sampayu

Internet afora há "trocentos" artigos (como este, por exemplo) explicando que as pastas padrão do Ubuntu são denominadas "pastas XDG". Essa abreviatura "XDG" vem de X Desktop Group, que foi o nome inicialmente usado pela organização Free Desktop antes de ela obviamente mudar o próprio nome. Conforme consta nesses tantos artigos, a configuração padrão das pastas XDG é esta:

XDG_DESKTOP_DIR="$HOME/Área de trabalho"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Modelos"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imagens"
XDG_VIDEOS_DIR="$HOME/Vídeos"


...e é essa configuração padrão que faz com que na pasta da sua conta de usuário existam as pastas Área de trabalho, Downloads, Modelos, Público, Documentos, Música, Imagens e Vídeos.

Esses artigos normalmente ensinam que, para customizar as suas pastas XDG, basta editar o arquivo abaixo indicado (o caractere ~ é um atalho para a pasta do usuário que está conectado no momento, portanto enquanto a pasta pessoal do usuário for /home/bogus/, por exemplo, o caractere ~ será sinônimo de /home/bogus):

~/.config/user-dirs.dirs

O arquivo acima pode ser aberto para edição por intermédio de um comando como, por exemplo, este:

gedit ~/.config/user-dirs.dirs

...ou este:

nano ~/.config/user-dirs.dirs

...que lhe possibilitará usar um editor de textos simples (como o GEDIT ou o NANO) para modificar o texto que define a localização de cada uma dessas pastas.

Após modificar o que você quiser no arquivo e salvar as alterações, é só sair do editor de textos e então executar este comando:

xdg-user-dirs-update

...que as alterações efetuadas por você no arquivo de configuração entrarão em vigor.

Um exemplo: eu recentemente resolvi criar uma pasta Desktop dentro da minha pasta /home/sampayu/ (nome fictício ;D), portanto ficou assim: /home/sampayu/Desktop/
No gerenciador de arquivos (que no meu caso é o Thunar) já aparecia a pasta XDG /home/sampayu/Área de trabalho/, e ao clicar nela eu via mesmo os arquivos que deixo na área de trabalho, mas eu queria que o conteúdo mostrado na minha área de trabalho passasse a ser aquele que está dentro da pasta /home/sampayu/Desktop/. Por causa disso, após criar a tal da pasta Desktop eu fui lá na área de trabalho e movi todos os arquivos de /home/sampayu/Área de trabalho/ para /home/sampayu/Desktop/. Em seguida, eu excluí a pasta Área de trabalho (já que ela agora estava vazia e sem uso). Resultado: na área de trabalho do meu computador os arquivos desapareceram. Isso é normal e ocorreu porque, embora esses arquivos tenham passado a estar sãos e salvos dentro da pasta Desktop, o sistema Linux "não sabia" disso e, por isto, continuou tentando mostrar na minha área de trabalho os arquivos que o Linux ainda esperava que estivessem armazenados dentro daquela pasta /home/sampayu/Área de trabalho/:P

Após isso, o próximo passo foi informar ao Linux que minha "pasta XDG de área de trabalho" não era mais /home/sampayu/Área de trabalho/ mas sim /home/sampayu/Desktop/, por isto abri o arquivo ~/.config/user-dirs.dirs no editor de textos e mudei o código para este (observe a diferença na primeira linha do código):

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Modelos"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imagens"
XDG_VIDEOS_DIR="$HOME/Vídeos"


Após realizar essa modificação, salvei o arquivo e fechei o editor de textos, então executei este comando:

xdg-user-dirs-update

...e, de fato, após isso os arquivos armazenados em /home/sampayu/Desktop/ passaram a ser exibidos na área de trabalho do meu computador.  ;D

A propósito, a palavra $HOME é uma variável de sistema que representa o caminho para a pasta do usuário que está conectado no momento, portanto é a mesma coisa que o caractere ~. No meu exemplo fictício, o valor dessa variável $HOME é /home/sampayu, portanto aquele código XDG_DESKTOP_DIR="$HOME/Desktop", por exemplo, significa que minha "pasta XDG de área de trabalho" (XDG_DESKTOP_DIR) vem a ser $HOME/Desktop, o que corresponde a /home/sampayu/Desktop;)

Eu também poderia ter modificado aquele arquivo de configuração sem abri-lo em um editor de textos. Bastaria eu executar o seguinte comando de atualização de pasta XDG:

xdg-user-dirs-update --set DESKTOP /home/sampayu/Desktop

O comando acima significa "defina" (set) "a pasta da área de trabalho" (DESKTOP) "como sendo /home/sampayu/Desktop".




Mas e quando você quer que alguma dessas pastas fique em outra partição ou até mesmo em outro disco rígido?

Pois é, isso aconteceu comigo e não encontrei nenhum artigo explicando como fazer isso...  ::)

Eu tenho um segundo disco rígido e ele é automaticamente montado na pasta /biblioteca/de/filmes/ (nome fictício ataca novamente ;D). Como eu uso esse segundo disco rígido exclusivamente para guardar nele os meus arquivos de vídeo (filmes), eu voltei lá no arquivo ~/.config/user-dirs.dirs e mudei o conteúdo para isto:

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Modelos"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imagens"
XDG_VIDEOS_DIR="/biblioteca/de/filmes"


...e então salvei o arquivo, fechei o editor de textos, executei este comando de atualização:

xdg-user-dirs-update

...e quebrei a cara, porque não funcionou.  :o

Após realizar essa modificação, eu esperava não apenas clicar lá em /biblioteca/de/filmes/ e ver meus arquivos de vídeo (como de fato continuou ocorrendo como de costume), mas eu também esperava que ao clicar lá naquela pasta /home/sampayu/Vídeos/ eu também veria exatamente os mesmos arquivos de vídeo, ou seja: o conteúdo do segundo disco rígido seria exibido tanto em /biblioteca/de/filmes/ (ponto de montagem) quanto em /home/sampayu/Vídeos/ (pasta XDG de vídeos). No entanto, não foi isso que ocorreu: a pasta /home/sampayu/Vídeos/ continuou não mostrando nada exceto o vazio mesmo.  :'(

Foi aí que tive a ideia de apagar a pasta /home/sampayu/Vídeos/ (lembre-se: ela estava vazia) e, no lugar dela, colocar um link simbólico /home/sampayu/Vídeos apontando para /biblioteca/de/filmes/. O comando para fazer isso (após deletar a pasta Vídeos vazia) é este:

ln -s -T /biblioteca/de/filmes /home/sampayu/Vídeos

Se o comando acima não funcionar com você, experimente executá-lo como superusuário ("root"):

sudo ln -s -T /biblioteca/de/filmes /home/sampayu/Vídeos

Como no caso da pasta situada em outro disco rígido não adiantou nada editar o arquivo ~/.config/user-dirs.dirs, eu devolvi pra dentro desse arquivo a configuração padrão da pasta XDG de vídeos, ou seja: lá onde eu havia mudado o texto para XDG_VIDEOS_DIR="/biblioteca/de/filmes" eu mudei o código de volta para XDG_VIDEOS_DIR="$HOME/Vídeos" e, após salvar o arquivo e fechar o editor de textos, executei o comando:

xdg-user-dirs-update

Conforme explicado anteriormente, outro modo de restituir essa configuração é executar o seguinte comando, diretamente no terminal (shell) do Linux:

xdg-user-dirs-update --set VIDEOS $HOME/Vídeos

Depois que efetuei esses ajustes, toda vez em que eu clico em /home/sampayu/Vídeos/ o que eu vejo é o conteúdo (filmes) do segundo disco rígido que está montado em /biblioteca/de/filmes/, e quando salvo algum arquivo na área de trabalho do computador ele aparece dentro de /home/sampayu/Desktop/. Problema resolvido!  ;D
Yuri Sucupira ("Sampayu")

Vitor Martins

Bom dia.

Uso o ubuntu 22.04. Tive apagada sem querer a pasta "Área de Trabalho", o que fez com que todas as pastas aparecessem na área de trabalho (espelhadas). Como faço para recuperar a pasta "Área de Trabalho"? Já tentei editar o arquivo user-dirs.dirs, mas não obtive sucesso. Abaixo segue minha configuração:

XDG_DESKTOP_DIR="$HOME/"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Modelos"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imagens"
XDG_VIDEOS_DIR="$HOME/Vídeos"

Já tentei alterar esse arquivo, mas quando reinicio, volta tudo como está acima. A mudança não surte efeito. Fiz conforme abaixo e salvei, mas depois de reiniciado não aparece a mudança.

XDG_DESKTOP_DIR="$HOME/Área de Trabalho"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Modelos"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imagens"
XDG_VIDEOS_DIR="$HOME/Vídeos"

Utilizei o comando:

xdg-user-dirs-update

e recebi a msg: " /home/vitorvsm/Área de Trabalho was removed, reassigning DESKTOP to homedir"

Consegue me ajudar? Obgdo desde já.

Sampayu

Citação de: Vitor Martins online 12 de Novembro de 2023, 09:12
Utilizei o comando:

xdg-user-dirs-update

e recebi a msg: " /home/vitorvsm/Área de Trabalho was removed, reassigning DESKTOP to homedir"

Consegue me ajudar? Obgdo desde já.

Se você esvaziou a lixeira, já era: a pasta Área de trabalho foi perdida com todos os arquivos que estavam dentro dela. Você pode criar uma nova pasta Área de trabalho e refazer a configuração das pastas XDG, mas os arquivos que foram excluídos da lixeira não aparecerão na sua área de trabalho.

Um pequeno-grande detalhe: o Linux faz diferenciação entre maiúsculas e minúsculas, então se o nome da pasta for Área de trabalho (com t minúsculo) mas no arquivo de configuração você digitar Área de Trabalho (com t maiúsculo), o Linux vai entender que se tratam de duas pastas diferentes, daí como ele procura por Área de Trabalho mas não encontra (porque a pasta na realidade se chama Área de trabalho), o Linux retorna ao valor que já estava no arquivo de configuração.

Enfim, caso você:
1. Não tenha excluído definitivamente a pasta Área de trabalho; E
2. Você tenha restaurado a pasta Área de trabalho para dentro da sua pasta pessoal (/home/vitorvsm/); E
3. O nome dessa pasta dentro do arquivo de configuração esteja correto, idêntico ao nome da pasta fisica, coincidindo não apenas os caracteres mas também o uso de maiúsculas e minúsculas.

...então você poderá executar novamente o comando de atualização das pastas e em seguida reiniciar o computador. Após isso, sua área de trabalho deverá estar funcionando novamente, com os arquivos que havia antes etc.
Yuri Sucupira ("Sampayu")