Проверка источника (vte и gnome-терминал), похоже, нет способа сделать это. Другие терминалы (например, xterm) могут делать это с помощью escape-последовательностей. См. Последовательности управления XTerm :
OSC Ps ; Pt ST
Set Text Parameters. For colors and font, if Pt is a "?", the
control sequence elicits a response which consists of the con-
trol sequence which would set the corresponding value. The
dtterm control sequences allow you to determine the icon name
and window title.
...
Ps = 5 0 -> Set Font to Pt. These controls may be disabled
using the allowFontOps resource. If Pt begins with a "#",
index in the font menu, relative (if the next character is a
plus or minus sign) or absolute. A number is expected but not
required after the sign (the default is the current entry for
relative, zero for absolute indexing).
vte распознает 50
, но это (как и многие другие функции xterm) просто заглушка, которая ничего не делает. Источники xterm включают 20-летний скрипт , который демонстрирует эту функцию (см. fonts.sh
).
Вместо использования escape-последовательности вы можете использовать инструмент wmctrl
(который может попросить оконного менеджера договориться с терминалом). Некоторые сделали это с другими терминалами, например, терминология (но в конечном итоге с помощью escape-последовательности).
vte имеет некоторый код, который может быть доступен из скрипта Python, используя g_signal_connect
для связывания сигналов decrease-font-size
и increase-font-size
(см. исходный код ). Сигнальный код - это то, что вы используете с клавиатурой. Но как вы можете определить указатель объекта из скрипта, запускаемого вне эмулятора терминала, неясно.