From e4123df7be7fe01d2b18e5b57d057dfe6e1145ba Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Tue, 2 Jun 2026 09:05:33 +0800 Subject: [PATCH] config.fish: remove unicode_start on linux console login This command typically does ioctl(open("/dev/tty"), KDSKBMODE, K_UNICODE) printf '\033%%G' stty iutf8 Other shells don't do this; it seems like this is typically already done before the shell is started, for example by systemd's vconsole-setup. We only do it in very specific scenarios (login shells on linux), so if this is really needed, we should make it reliable. Bravely remove it. --- share/config.fish | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/share/config.fish b/share/config.fish index b683fc90d..7bb30b861 100644 --- a/share/config.fish +++ b/share/config.fish @@ -131,24 +131,12 @@ and __fish_set_locale # Some things should only be done for login terminals # This used to be in etc/config.fish - keep it here to keep the semantics # -if status is-login - if command -sq /usr/libexec/path_helper - __fish_macos_set_env PATH /etc/paths '/etc/paths.d' - if test -n "$MANPATH" - __fish_macos_set_env MANPATH /etc/manpaths '/etc/manpaths.d' - end - functions -e __fish_macos_set_env - end - - # - # Put linux consoles in unicode mode. - # - # TODO(terminal-workaround) - if test "$TERM" = linux - and string match -qir '\.UTF' -- $LANG - and command -sq unicode_start - unicode_start +if status is-login && command -sq /usr/libexec/path_helper + __fish_macos_set_env PATH /etc/paths '/etc/paths.d' + if test -n "$MANPATH" + __fish_macos_set_env MANPATH /etc/manpaths '/etc/manpaths.d' end + functions -e __fish_macos_set_env end # Invoke this here to apply the current value of fish_user_path after