Sim, mas não diretamente.
A ferramenta que carrega .Xresources , que é xrdb , invoca o pré-processador C . É daí que vem a diretiva #include . O pré-processador C não fornece acesso a variáveis de ambiente. A saída do pré-processador é interpretada como uma lista de recursos, sem processamento dinâmico adicional, como a interpolação de variáveis.
Você tem duas soluções: usar um pré-processador diferente ou definir uma variável ao invocar xrdb e usá-la. De qualquer forma, você precisará alterar a maneira como xrdb é chamado - adicione um comando xrdb aos seus scripts de inicialização da sessão X.
Para usar uma variável com o pré-processador C, passe-a na linha de comando xrdb :
xrdb -DEXTRA_RESOURCES_FILE="<$env_path/abc/def/Xresources>" -merge ~/.Xresources
e use essa variável no seu arquivo:
#include EXTRA_RESOURCES_FILE
Observe que você está limitado no que pode em uma diretiva de inclusão, porque o pré-processador não possui nenhum recurso de processamento de string, nem mesmo concatenação. Todo o nome do arquivo deve ser especificado como uma única string. Além disso, xrdb parece transformar silenciosamente " em _ , mas felizmente deixa <> passar.
Se você quer mais flexibilidade, você pode usar um pré-processador diferente. Eu uso m4 , que é peculiar e não ideal, mas não pior do que o pré-processador C. O M4 possui recursos reais de processamento de sequências e pode incluir outros arquivos. Não pode acessar variáveis de ambiente diretamente, no entanto. Com o GNU m4, você pode fazer isso, mas você tem que usar um escape de shell. Se você for executar uma invocação personalizada de xrdb , também poderá transmitir a variável de ambiente nesse ponto.
xrdb -D"env_path=$env_path" -merge ~/.Xresources
No arquivo .Xresources :
m4_include(env_path/abc/def/Xresources)
Observe que m4 usa '…' para citar strings. Para incluir um ' na saída, você precisa alterar temporariamente o caractere de aspas.
Alternativamente, se tudo que você precisa é incluir um arquivo extra, basta executar
xrdb -merge "$env_path/abc/def/Xresources"