私のラップトップは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