Terminal: Поддержка сброса цветов через OSC 104, 110, 111 ...

Созданный на 26 нояб. 2019  ·  3Комментарии  ·  Источник: microsoft/terminal

Описание новой функции / улучшения

Это аналоги OSC 4, 10, 11 для сброса цвета по умолчанию. (И продолжите строку с 117, 119, если 17, 19 будут реализованы, и т. Д.)

Предлагаемые детали технической реализации (необязательно)

В терминале VTE + GNOME мы выяснили, что лучше всего, если последовательности OSC 4, 10, 11 имеют приоритет над настройками файла пользовательского интерфейса / конфигурации. То есть для каждого цветового слота, если его значение определяется через OSC 4, 10, 11, то используется этот, а тот, который указан в настройках, игнорируется. Если значение не было определено через OSC 4, 10, 11 или было сброшено через OSC 104, 110, 111, то используется значение, указанное в настройках эмулятора терминала. Таким образом, повторное применение тех же настроек является идемпотентной операцией. (Раньше два источника боролись друг с другом, оба перезаписывали значение в одном и том же слоте. Таким образом, повторное применение пользовательской конфигурации (например, «изменение» цвета на одно и то же значение) делало бы недействительным предыдущий OSC, что было плохо. )

Area-VT Help Wanted Issue-Task Product-Conhost

Самый полезный комментарий

Говоря от себя, это довольно низкий мой список приоритетов, потому что я думаю, что это будет немного больно. Это нужно реализовать дважды, потому что цветовая палитра - одна из тех вещей, которые должны обрабатываться отдельно conhost и Windows Terminal. А на стороне conhost действительно нет концепции «палитры по умолчанию» для сброса, потому что исходные цвета могут поступать из множества источников (например, ярлыков и записей реестра), а источник может меняться во время выполнения.

У меня также есть планы по рефакторингу некоторого кода управления палитрой, и я не стремлюсь добавлять какие-либо функции палитры, пока этот рефакторинг не прекратится. Не то чтобы рефакторинг обязательно был предварительным условием для этой функции, но я лично предпочел бы сначала очистить его.

Так что в основном это похоже на большую работу для довольно малоизвестной функции, и я подозреваю, что мало кто будет заботиться о ней. Но это только моя точка зрения. Возможно, кто-то другой посчитает это приоритетом и решит заняться им раньше.

Все 3 Комментарий

Я только что отскочил от этого. Я использую сценарий с OSC 10 и 11 для переключения с Solarized Dark на Solarized Light в сеансах Administrator PowerShell. Однако редактирование моей конфигурации приводит к тому, что все такие сеансы сбрасывают свои цвета, за исключением множества вещей, которые, кажется, сохраняют цветовую схему с момента ее написания (в PowerShell, я думаю, это PS-Readline на работе).

Меня особенно интересует поведение слоев конфигурации, но без OSC 104/110/111 невозможность применить изменения конфигурации, вероятно, является регрессией UX.

Есть ли какие-либо особые опасения по поводу предлагаемого поведения, например, стандартизации / общности? Или это просто случай реализации соответствующего кода в этом репо?

Или (исходя из того, что вехой является выпуск Windows) действительно ли требуется сначала внутренняя работа MS для поддержки сброса цветов?

Говоря от себя, это довольно низкий мой список приоритетов, потому что я думаю, что это будет немного больно. Это нужно реализовать дважды, потому что цветовая палитра - одна из тех вещей, которые должны обрабатываться отдельно conhost и Windows Terminal. А на стороне conhost действительно нет концепции «палитры по умолчанию» для сброса, потому что исходные цвета могут поступать из множества источников (например, ярлыков и записей реестра), а источник может меняться во время выполнения.

У меня также есть планы по рефакторингу некоторого кода управления палитрой, и я не стремлюсь добавлять какие-либо функции палитры, пока этот рефакторинг не прекратится. Не то чтобы рефакторинг обязательно был предварительным условием для этой функции, но я лично предпочел бы сначала очистить его.

Так что в основном это похоже на большую работу для довольно малоизвестной функции, и я подозреваю, что мало кто будет заботиться о ней. Но это только моя точка зрения. Возможно, кто-то другой посчитает это приоритетом и решит заняться им раньше.

Имеет смысл. Для меня это ни в коем случае не блокировщик, поэтому я рад дождаться, когда произойдет какой-либо запланированный рефакторинг (и, возможно, № 942), прежде чем я начну пытаться сорвать низко висящие плоды.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги