Ghostty теперь поддерживает расширение `click_events`, введенное Kitty и поддерживаемое Fish. Если вы используете Fish 4.1+, вы можете кликнуть (без модификаторов!) в любом месте в командной строке, чтобы переместить курсор мыши. Я считаю, что Ghostty первым поддерживает это расширение вне Kitty. Насколько я могу судить, единственная оболочка, поддерживающая это, - это Fish (4.1+), а единственный терминал, который поддерживал это ранее, - Kitty. Было бы здорово, если бы больше представителей обеих экосистем поддерживало это. Другие терминалы действительно поддерживают перемещение курсора мыши в какой-то степени (включая Ghostty с версии 1.0), но делают это с помощью другого, более хрупкого механизма: когда вы кликаете, он просто пытается рассчитать количество синтетических нажатий клавиши стрелки влево, чтобы сделать вид, что перемещает ваш курсор. Это очень хрупко, потому что не учитывает поведение оболочки, особенно в отношении отступов, многострочных команд и если вы вообще не находитесь в командной строке... Расширение `click_events` позволяет Ghostty знать, когда вы находитесь на строке подсказки, и работает, кодируя событие клика мыши, когда вы находитесь на строке подсказки, в оболочку. Затем оболочка берет на себя управление и обрабатывает всю логику перемещения курсора, что имеет наибольший смысл! PR:
@Tyriar Обратите внимание, что нам пришлось добавить наше собственное нестандартное (в настоящее время не задокументированное) расширение к OSC133 для bash, которое называется `redraw=last`, так как bash поддерживает только перерисовку последней строки подсказки. Когда это присутствует, Ghostty будет очищать только ПОСЛЕДНЮЮ строку подсказки при изменении размера. Только bash нуждается в этом.
88