我希望能够在 roxterm 中切换配置文件,而不必每次都访问菜单。
这怎么可能呢?
答案1
发现使用 dbus 可以实现这一点:
# uses _ROXTERM_PROFILE env var to cycle profiles
roxterm_cycle_profile() {
IFS="$(printf '\n')"
if [ -z "$_ROXTERM_PROFILE" ]; then
export _ROXTERM_PROFILE=Default
fi
PROFILES=$(ls -1 ~/.config/roxterm.sourceforge.net/Profiles)
TOTAL_LINES=$(echo $PROFILES | wc -l)
INDEX_NEW=$(echo $PROFILES | grep -n "^$_ROXTERM_PROFILE\$" | cut -d: -f 1)
INDEX_NEW=$(expr $(($INDEX_NEW+1)) % $TOTAL_LINES)
if [ "0" -eq $INDEX_NEW ]; then
INDEX_NEW=1
fi
export _ROXTERM_PROFILE=$(echo $PROFILES | sed $INDEX_NEW"q;d")
dbus-send \
--session /net/sf/roxterm/Options \
net.sf.roxterm.Options.SetProfile \
string:"$ROXTERM_ID" \
string:"$_ROXTERM_PROFILE"
}
映射 Shift-Tab 来运行此命令的示例(添加到~/.zshrc
):
zle -N roxterm_cycle_profile
# Shift-Tab to cycle
bindkey "^[[Z" roxterm_cycle_profile
请注意,我没有找到读取当前配置文件的方法,因此第一次访问时,会使用默认配置文件。