我有一个简单的启动脚本,我希望启动远程桌面管理器 (Exceed onDemand),以便在远程计算机上启动 i3 窗口管理器。
这是脚本(称为i3start
),它只是将环境设置为指向我本地构建的二进制文件,加载一些 Xresources 文件以设置颜色和其他设置,然后最终启动i3
:
#!/bin/bash
_root="${HOME}/.i3wm"
source /etc/environment
export PATH="$_root/usr/bin:${PATH}"
export LD_LIBRARY_PATH="$_root/usr/lib:$_root/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}"
export PERL5LIB="$_root/usr/lib/urxvt"
xrdb $_root/common/themes/solarized-dark/Xresources
xrdb -override ${HOME}/.Xresources
xrdb -q &> ~/xrdb.log
exec i3
在 Exceed onDemand 中,我有以下 Xstart 设置:
- 启动方式:安全Shell
- 主持人:
<insert_server_name>
- 验证:使用超出连接服务器凭据
- 命令:
/home/user_name/.i3wm/i3start
我不完全确定(即使在阅读了他们的用户手册之后)这些设置会产生什么命令,但我想它会执行一些操作来启动 X 然后 issues ssh -X <insert_server_name> /home/user_name/.i3wm/i3start
,或者达到这种效果。
问题是——正如通过检查确认的那样~/xrdb.log
,它是空的——加载的那些文件xrdb
不起作用。我还用来xrdb -n
确认文件可以被正确解析xrdb
,但它仍然导致 X 资源数据库中没有设置任何内容。
如果我将 Xstart 设置更改为仅启动xterm
:
- 启动方式:安全Shell
- 主持人:
<insert_server_name>
- 验证:使用超出连接服务器凭据
- 命令:
xterm
我得到一个简单的终端,然后从 启动脚本后/home/user_name/.i3wm/i3start
,xterm
一切都按预期工作,并且设置从这 2 个 Xresources 文件加载并由 正确显示xrdb -q
。
在我的脚本中,在调用加载这些设置i3start
之前我需要做些什么吗?xrdb
我认为这一定是刚启动时xterm
所做的事情。
编辑:忘了说了,远程服务器是Ubuntu 16.04(xenial)。