如何在 roxterm 中将按键绑定到循环配置文件?

如何在 roxterm 中将按键绑定到循环配置文件?

我希望能够在 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

请注意,我没有找到读取当前配置文件的方法,因此第一次访问时,会使用默认配置文件。

相关内容