Eu uso o emacs no trabalho, onde costumo me conectar ao sistema com dois usuários diferentes:
O primeiro é meu próprio usuário pessoal, enquanto o segundo é compartilhado por toda a equipe para gerenciar um aplicativo. (Dica irrelevante: essa é uma idéia terrível. Geralmente, há maneiras melhores, embora menos óbvias, de gerenciar privilégios. Tire isso da minha experiência).
Para evitar confusões, quero definir um tema separado para cada usuário e defini-lo em seus respectivos arquivos init.
Tudo o mais definido no arquivo init deve ser compartilhado pelos dois.
Solução simples
Eu criei um arquivo init separado /path/to/init/file/.emacs
e criei o seguinte arquivo .emacs
no diretório pessoal de cada usuário:
(load-file "/path/to/init/file/.emacs")
(load-theme my-favorite-theme)
Isso funciona como um encanto. Mas claro, isso seria fácil demais!
Nova solução necessária
Fui solicitado a não modificar o arquivo .emacs
de commonuser
. Eu não vou entrar nos detalhes do porquê, mas o fato é que eu tive que encontrar uma solução alternativa. Aqui está o que eu tenho até agora:
- Escrevi um arquivo
~myuser/.emacs
completo, que carregarei independentemente do usuário.
-
Definiu um alias para commonuser
da seguinte forma:
alias emacs='emacs -Q --load ~myuser/.emacs'
Isso fará com que o emacs ignore o arquivo init commonuser
e carregue myuser
.
Agora, minha (simples) pergunta é:
Como posso fazer o emacs se comportar de maneira diferente de acordo com o usuário que o lança?
Estou procurando fazer algo semelhante:
if [[ $(whoami) == "myuser" ]]; then
(load-theme 'theme1)
if [[ $(whoami) == "commonuser" ]]; then
(load-theme 'theme2)