Executando o script para a sessão x do console

0

Eu uso um teclado USB com meu laptop. Tem um layout diferente do o builtin, então eu tenho script para alternar entre eles. Mas se eu esquecer de trocar antes de desconectar, não tenho super. Agora eu estou em uma sala diferente, e não posso ser incomodado para pegar meu teclado. Eu não posso chegar a um terminal nesta sessão x sem super, mas posso mudar para um console diferente. Mas se eu tentar executar o script lá, ele diz cannot open display 'default display' . Posso rodá-lo para a sessão x aberta a partir do console?

PS: o script:

#!/bin/bash
killall xcape
if lsusb | grep HHKB ; then {
        setxkbmap us,gr \
                -variant carpalx-plus-intl,daedalus \
                -option grp:win_space_toggle \
                -option lv3:rwin_switch \
                -option altwin:meta_alt \
                -option shift:breaks_caps \
                -option lv5:lsgt_switch_lock
        xmodmap ~/.xmodmap/hh
        xcape -e "Shift_L=F13;Shift_R=F13;Super_L=Prior;Hyper_L=Prior"
} &
else {
        setxkbmap us,gr \
                -variant carpalx-plus-intl,daedalus \
                -option grp:win_space_toggle \
                -option lv3:ralt_switch \
                -option altwin:meta_alt \
                -option shift:breaks_caps -option lv5:lsgt_switch_lock
        xmodmap ~/.xmodmap/apple
        xcape -e "Control_L=Escape;Shift_L=F13;Shift_R=F13;Alt_L=Escape;Alt_R=Escape"
} &
fi
    
por Toothrot 12.02.2017 / 04:23

1 resposta

0

Você precisa definir sua variável DISPLAY antes de executar o script.

Tente:

DISPLAY=:0  yourscriptname
    
por 12.02.2017 / 07:58

Tags