1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-25 22:33:52 +03:00
wezterm/test-data/emoji-presentation.sh

32 lines
1.0 KiB
Bash
Raw Normal View History

#!/bin/zsh
# Save initial unicode version
local label=$(uuidgen)
printf "\e]1337;UnicodeVersion=push %s\e\\" $label
for version in 9 14 ; do
echo "\n### Unicode Version $version\n"
printf "\e]1337;UnicodeVersion=$version\e\\"
introduce unicode_version config This is a fairly far-reaching commit. The idea is: * Introduce a unicode_version config that specifies the default level of unicode conformance for each newly created Terminal (each Pane) * The unicode_version is passed down to the `grapheme_column_width` function which interprets the width based on the version * `Cell` records the width so that later calculations don't need to know the unicode version In a subsequent diff, I will introduce an escape sequence that allows setting/pushing/popping the unicode version so that it can be overridden via eg: a shell alias prior to launching an application that uses a different version of unicode from the default. This approach allows output from multiple applications with differing understanding of unicode to coexist on the same screen a little more sanely. Note that the default `unicode_version` is set to 9, which means that emoji presentation selectors are now by-default ignored. This was selected to better match the level of support in widely deployed applications. I expect to raise that default version in the future. Also worth noting: there are a number of callers of `unicode_column_width` in things like overlays and lua helper functions that pass `None` for the unicode version: these will assume the latest known-to-wezterm/termwiz version of unicode to be desired. If those overlays do things with emoji presentation selectors, then there may be some alignment artifacts. That can be tackled in a follow up commit. refs: #1231 refs: #997
2021-11-25 18:53:07 +03:00
echo "|||"
echo -e "\u270c| Victory hand, text presentation by default"
echo -e "\u270c\ufe0e| Victory hand, explicit text presentation"
echo -e "\u270c\ufe0f| Victory hand, explicit emoji presentation"
introduce unicode_version config This is a fairly far-reaching commit. The idea is: * Introduce a unicode_version config that specifies the default level of unicode conformance for each newly created Terminal (each Pane) * The unicode_version is passed down to the `grapheme_column_width` function which interprets the width based on the version * `Cell` records the width so that later calculations don't need to know the unicode version In a subsequent diff, I will introduce an escape sequence that allows setting/pushing/popping the unicode version so that it can be overridden via eg: a shell alias prior to launching an application that uses a different version of unicode from the default. This approach allows output from multiple applications with differing understanding of unicode to coexist on the same screen a little more sanely. Note that the default `unicode_version` is set to 9, which means that emoji presentation selectors are now by-default ignored. This was selected to better match the level of support in widely deployed applications. I expect to raise that default version in the future. Also worth noting: there are a number of callers of `unicode_column_width` in things like overlays and lua helper functions that pass `None` for the unicode version: these will assume the latest known-to-wezterm/termwiz version of unicode to be desired. If those overlays do things with emoji presentation selectors, then there may be some alignment artifacts. That can be tackled in a follow up commit. refs: #1231 refs: #997
2021-11-25 18:53:07 +03:00
echo -e "\u270a| Raised fist, emoji presentation by default"
echo -e "\u270a\ufe0e| Raised fist, explicit text presentation (invalid; no effect)"
echo -e "\u270a\ufe0f| Raised fist, explicit emoji presentation"
echo -e "\u2716| Multiply, text presentation by default"
echo -e "\u2716\ufe0e| Multiply, explicit text presentation"
echo -e "\u2716\ufe0f| Multiply, explicit emoji presentation"
echo -e "\U0001F468\u200D\U0001F467\u200D\U0001F466|"
echo "👨|"
echo -e "\U0001F6E5|"
echo -e "\U0001F6E5"
done
# Restore saved unicode version
printf "\e]1337;UnicodeVersion=pop %s\e\\" $label