Guia do Desktop Linux (2021 Edition) - Parte 1

Ao contrário que muita gente pensa o Linux no Desktop não é a zona que pintam por aí, os diferentes Ambientes Desktop nada mais são que meios diferentes de posicionar painéis, fora usos de recursos e efeitos estéticos não existe nada muito diferente entre eles, no máximo ferramentas que facilitam fazer tarefas, o que está aqui no guia visa mostrar é o que está atrás das interfaces

Os diretórios base

De maneira geral sempre que você inicia um sistema Linux você provavelmente vai achar uma estrutura de diretórios pré pronta que pode estar de infinitos jeitos mas estranhamente funcionam da mesma forma em diferentes sistemas operacionais e em diferentes interfaces, isso acontece porque essas pastas são definidas por variáveis especiais chamadas de XDG, aqui está uma lista das variáveis e o que elas fazem:

Variável O que significa Local padrão
HOME É a pasta onde ficam os dados do seu usuário, não é exclusiva do XDG mas é a base de quase todas as outras do XDG /home/[seu usuário]
XDG_CONFIG_HOME É onde fica os arquivos de configuração dos aplicativos acessados pelo seu usuário [HOME]/.config
XDG_CACHE_HOME É onde ficam os arquivos de cache, cache são arquivos que aplicativos criam para não perderem tempo procurando /gerando novamente cada vez que você abre o programa ou um determinado arquivo [HOME]/.cache
XDG_RUNTIME_DIR É onde ficam os arquivos temporários pequenos da execução de um programa, geralmente é usado por programas que ligam outros programas como dbus e akonadi /run/[EUID]
XDG_DATA_HOME É onde ficam os arquivos de dados de aplicativos que não se enquadram nem como cache, nem como configuração e nem dados de execução [HOME]/.local/share

Os diretórios dos arquivos

Embora não sejam configurados usando variáveis de ambiente esses diretórios são bem interessantes, porque são os diretórios que você obtém acesso ao iniciar o sistema pela primeira vez:

Pra que servem?

Apesar de não serem forçados como ocorre no Android, cada uma dessas pastas possuem uma função específica no sistema e se bem utilizadas podem organizar quase que automaticamente um fluxo otimizado dentro da Metáfora do Desktop

Diretório XDG Pra que serve (ou deveria servir) Local padrão
DESKTOP Armazena os arquivos que o usuário esta trabalhando [HOME]/Área de trabalho
DOWNLOAD Armazena os arquivos baixados na internet [HOME]/Documentos
TEMPLATES Armazena modelos para que não seja necessário criar arquivos sempre do zero [HOME]/Modelo
PUBLICSHARE Armazena arquivos que o usuário deseja compartilhar na rede ou com outros usuário
Nota: precisa ser configurada antes
[HOME]/Público
DOCUMENTS Armazena arquivos tipo Office como textos, slides, planilhas, PDF etc… [HOME]/Documentos
MUSIC Armazena musicas offline do usuario, gravaçoes de voz etc… [HOME]/Músicas
PICTURES Armazena imagens do usuario, fotos, desenhos etc… [HOME]/Imagens
VIDEOS Armazena videos do usuario, filmes, gravaçoes de videos etc… [HOME]/Vídeos

Como configurar?

Eles são definidos por um arquivo de configuração localizado em [XDG_CONFIG_HOME]/user-dirs.dirs e tem uma sintaxe bem simples:

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"

Além do arquivo de configuração você pode utilizar a ferramenta xdg-user-dirs-update para definir os valores, o equivalente do arquivo acima usando a ferramenta é:

xdg-user-dirs-update --set XDG_DESKTOP_DIR     "${HOME}/Área de trabalho"
xdg-user-dirs-update --set XDG_DOWNLOAD_DIR    "${HOME}/Downloads"
xdg-user-dirs-update --set XDG_TEMPLATES_DIR   "${HOME}/Modelos"
xdg-user-dirs-update --set XDG_PUBLICSHARE_DIR "${HOME}/Público"
xdg-user-dirs-update --set XDG_DOCUMENTS_DIR   "${HOME}/Documentos"
xdg-user-dirs-update --set XDG_MUSIC_DIR       "${HOME}/Música"
xdg-user-dirs-update --set XDG_PICTURES_DIR    "${HOME}/Imagens"
xdg-user-dirs-update --set XDG_VIDEOS_DIR      "${HOME}/Vídeos"

Como obter o valor atual?

O valor atual pode ser obtido com a ferramenta xdg-user-dir, na mesma ordem:

xdg-user-dir "DESKTOP"
xdg-user-dir "DOWNLOAD"
xdg-user-dir "TEMPLATES"
xdg-user-dir "PUBLICSHARE"
xdg-user-dir "DOCUMENTS"
xdg-user-dir "MUSIC"
xdg-user-dir "PICTURES"
xdg-user-dir "VIDEOS"

Conclusão

Nesse artigo o objetivo é mostrar o básico do “Desktop Linux” e que você consiga usar isso pra configurar seus novos projetos, por exemplo, na minha concepção a posição atual não faz sentido desde o EXT 3, que tal uma ‘distro’ desktop com o seguintes layout?

  • .local
    • config
    • resources
    • cache
  • Modelos
  • Internet
  • Área de Trabalho
  • Compartilhados
  • Meus Arquivos
    • Documentos
      • Apresentações
      • Texto
      • Planilhas
      • eBooks
    • Imagens
      • Câmera
      • Capturas de tela
    • Músicas
      • Gravações
    • Vídeos
      • Câmera
      • Filmes
16 curtidas

vc parece ter lido meus pensamentos eu estou há uma semana pesquisando sobre isso.

pera aí vou dar boot no meu nixos e eu vou tô aqui para mostra minha concepção de layout.

aqui! o meu conceito em pratica:

3 curtidas

Que massa, ficou mais interessante que o que eu propus, parabens man

1 curtida

o único problema é que ainda existe alguns apps rebeldes, espero que isso se resolva com o tempo.

Um detalhe, aquela pasta data/data não faz o menor sentido, espero que o cara do vídeo tenha se enganado.

Outra coisa, o usuário Root não deveria ficar em Users também?

o cara do vídeo sou eu

é inspiração do Android, mas tbm pq fiquei sem ideia.

é um concept de um sistema sem root, ou um redesing do papel do root.

Eu sou bem chato com isso, geralmente eu forço usando wrappers só não consegui dar jeito no firefox

como assim? eu não sei o que é isso.

1 curtida

É um script que modifica o ambiente de execução do software por exemplo, meu wget é um script assim:

#!/usr/bin/env bash

wget.orig q -c --show-progress --progress=bar:force:noscroll ${@}
1 curtida