Autor Tópico: [DICA] Como personalizar / customizar as pastas XDG padrão do Ubuntu.  (Lida 1359 vezes)

Offline Sampayu

  • Usuário Ubuntu
  • *
  • Mensagens: 443
  • "Não é possível semear de mãos fechadas"
    • Ver perfil
    • YouTube
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:

Código: [Selecionar]
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):

Código: [Selecionar]
~/.config/user-dirs.dirs
O arquivo acima pode ser aberto para edição por intermédio de um comando como, por exemplo, este:

Código: [Selecionar]
gedit ~/.config/user-dirs.dirs
...ou este:

Código: [Selecionar]
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:

Código: [Selecionar]
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):

Código: [Selecionar]
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:

Código: [Selecionar]
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:

Código: [Selecionar]
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:

Código: [Selecionar]
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:

Código: [Selecionar]
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:

Código: [Selecionar]
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"):

Código: [Selecionar]
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:

Código: [Selecionar]
xdg-user-dirs-update
Conforme explicado anteriormente, outro modo de restituir essa configuração é executar o seguinte comando, diretamente no terminal (shell) do Linux:

Código: [Selecionar]
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")