.xsession exec não reconhece $ HOME ou argumentos?

0

O cenário básico é que eu estou compartilhando meus arquivos de pontos em várias máquinas e quero que minhas definições de sessão sejam sincronizadas também.

Como uso laptops e monitores diferentes com DPIs significativamente diferentes, quero poder especificar manualmente o DPI desejado para cada sessão.

Depois de alguns hacks feios ( s/y/ier/g ), decidi que o .xsession estava executando um script wrapper em vez de chamar diretamente xmonad-start (ou gnome-session ou qualquer outro) e passar o DPI desejado para esse script wrapper. Assim:

/usr/share/.xsessions/xmonad-standard.xsession

[Desktop Entry]
Name=Xmonad
Exec=/home/itsamemario/.xmonad/xmonad-start

/usr/share/.xsessions/xmonad-hidpi.xsession

[Desktop Entry]
Name=Xmonad HiDPI
Exec=/home/itsamemario/.xmonad/xmonad-start 192

/home/itsamemario/.xmonad/xmonad-start

#!/bin/sh

xrdb -merge "$HOME/.Xresources"

# For setting DPI by passing an argument from display manager
if [ ! -z "$1" ]; then
  TMPFILE=$(mktemp)
  echo "! Fonts {{{
Xft.dpi: $1
! }}}" > "$TMPFILE"
  xrdb -merge "$TMPFILE"
  notify-send "Setting DPI to $1"
  rm -f "$TMPFILE"
fi

# Other unimportant stuff here

exec /usr/bin/xmonad

Tudo funciona bem em duas instalações, mas na terceira não posso executar nenhuma sessão, exceto a padrão, sem argumentos. Acabei de receber o seguinte erro em .xsession-errors e ele retorna ao lightdm:

/etc/lightdm/Xsession: line 76: /home/itsamemario/.xmonad/xmonad-start 192: No such file or directory

No decorrer da depuração, também percebi que também posso usar normalmente $HOME/.xmonad/xmonad-start e .xmonad/xmonad-start nas outras duas instalações, mas nesta, só funciona se eu incluir explicitamente /home/itsamemario/ . Todos os três estão executando o Arch e não vejo nenhuma diferença relevante em como eles foram instalados ou configurados.

O que poderia fazer com que exec lines em .xsessions não transmitisse argumentos corretamente e possivelmente também não expandisse variáveis de sessão como $HOME ?

(Eu sei que há soluções melhores para o problema de DPI, mas minha abordagem de script de wrapper atende a outros requisitos. Estou focando apenas em DPI apenas aqui por uma questão de simplicidade.)

    
por nathanchere 31.03.2018 / 03:58

0 respostas