コンソールでxセッションを実行するスクリプト

コンソールでxセッションを実行するスクリプト

私のラップトップはUSBキーボードを使用しています。組み込みのレイアウトとレイアウトが異なるため、それらを切り替えることができるスクリプトがあります。しかし、プラグを抜く前に切り替えることを忘れてしまうと、スーパーはありません。今、私は別の部屋にいて、あまりにも怠惰な残りのキーボードを入手することはできません。 superがないと、このxセッションから端末に入ることはできませんが、他のコンソールに切り替えることはできます。しかし、そこからスクリプトを実行しようとすると、cannot open display 'default display'Can I run itというメッセージが表示されます。~のためコンソールでxセッションを開きますか?

PS:スクリプト:

#!/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

答え1

スクリプトを実行する前に、DISPLAY変数を設定する必要があります。

努力する:

DISPLAY=:0  yourscriptname

関連情報