Я бы хотел оказаться ошибочным, но с терминалами vt100, которые эмулирует экран, не представляется возможным установить их цвет фона по умолчанию ; можно только через последовательность CSI изменить цвет фона на значение по умолчанию. Тем не менее, при условии, что ваш хост-терминал поддерживает его, можно отправить управляющую последовательность OSC, чтобы установить цвет фона по умолчанию. Следствие установки цвета фона с помощью этого метода означает, что изменения, внесенные в цвет фона в других окнах экрана, не сохраняются. Другими словами, если цвет фона хост-терминала изменяется в одном окне экрана, вы затем переключаетесь на другое окно и снова изменяете цвет фона по умолчанию, а при переключении обратно на исходное окно экрана вы видите самый последний цвет фона. менять.
В следующем примере .screenrc демонстрирует подтверждение концепции. Это работает для konsole, но не практично, поскольку требует, чтобы каждое окно всегда находилось в приглашении оболочки, в котором можно отправить правильную последовательность.
# start a few screen windows
screen 0
screen 1
screen 2
screen 3
# set up key bindings to set the host terminal bg color when you switch windows
# spawn the echo in a subshell to avoid displaying single quote/also need to quote the trailing backslash
bind 0 eval "select 0" "stuff \"(echo -n $'\eP\e]11;navy\cg\e\134\134\134\134') \012\""
bind 1 eval "select 1" "stuff \"(echo -n $'\eP\e]11;forestgreen\cg\e\134\134\134\134') \012\""
bind 2 eval "select 2" "stuff \"(echo -n $'\eP\e]11;slategray\cg\e\134\134\134\134') \012\""
bind 3 eval "select 3" "stuff \"(echo -n $'\eP\e]11;purple\cg\e\134\134\134\134') \012\""
# switch to the first window and set the background color to blue
eval "select 0" "stuff \"(echo -n $'\eP\e]11;navy\cg\e\134\134\134\134') \012\""
Для поддерживаемых цветов, пожалуйста, обратитесь к документации Qt