从控制台运行 x 会话的脚本

从控制台运行 x 会话的脚本

我的笔记本电脑使用 USB 键盘。它的布局与内置布局不同,所以我有脚本在它们之间切换。但如果我在拔掉插头之前忘记切换,我就没有超级了。现在我在另一个房间,我懒得去拿键盘。如果没有 super,我无法进入此 x 会话中的终端,但我可以切换到不同的控制台。但如果我尝试在那里执行脚本,它会说cannot open display 'default display'.我可以运行它吗为了从控制台打开 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

相关内容