mirror of
https://github.com/microsoft/terminal.git
synced 2026-02-04 05:35:20 +00:00
Windows Terminal is Terrible #14472
Closed
opened 2026-01-31 04:11:14 +00:00 by claunia
·
26 comments
No Branch/Tag Specified
main
automated/loc-update
feature/llm
dev/cazamor/sui/search
dev/pabhoj/actions_editor_search
dev/lhecker/11509-kitty-keyboard-protocol
dev/lhecker/11509-kitty-keyboard-protocol-wip
dev/pabhoj/actions_editor_visual
dev/cazamor/selfhost/2026-01-29
dev/duhowett/no-blank-issues-you-lost-privileges-for-that-fam
dev/lhecker/benchcat-fix
dev/lhecker/dcs-perf
dev/duhowett/eoy-25/allow-set-foreground
release-1.24
release-1.23
dev/cazamor/bot/deprecate-area-atlasengine
dev/pabhoj/actions_editor_followups
dev/cazamor/selfhost/2026-01-20
dev/cazamor/selfhost/2026-01-12
dev/cazamor/spec/auto-save
dev/duhowett/eoy-25/underline-colors-in-atlas-bug-redux
dev/duhowett/fhl-2024/asciicast-recorder
dev/duhowett/eoy-25/underline-colors-in-atlas-bug
dev/duhowett/hax/serial-port-support
dev/duhowett/connection-utf8
dev/lhecker/fused-event
dev/lhecker/18928-wip
dev/duhowett/fhl-2024/clang
dev/cazamor/uia-leak
dev/duhowett/win7-wpf-termcontrol-squash
release-1.22
dev/cazamor/selfhost/11-18-v3
dev/cazamor/selfhost/11-18
dev/duhowett/fhl-2025/bitmap-fonts
dev/duhowett/server-2025-vms
dev/duhowett/cant-believe-gotta-do-this-shit
dev/lhecker/1410-large-scrollback
dev/lhecker/dark-mode
dev/cazamor/sui/invert-cursor-color
dev/duhowett/fhl-2025/wt-command-palette-cmdpal-integration
dev/duhowett/fhl-2025/wt-json-relative-icons
dev/lhecker/fucking-service-locator
dev/duhowett/unicode-17
dev/duhowett/multi-blern
dev/lhecker/wellp2-alt
dev/duhowett/wellp2
dev/lhecker/1860-horizontal-scrollbar
dev/lhecker/fix-window-count
dev/cazamor/sui/tab-color-old
dev/duhowett/hax/conhost-icon
dev/duhowett/hax/sui-color-chip-border
dev/duhowett/hax/terminalsettings-as-a-lib-/with-types-merged-into-tsm
dev/pabhoj/page_control_input_cleanup
dev/duhowett/padding-in-atlas-rebase-20250729
dev/lhecker/attach-thread-input
dev/duhowett/portable-shader-members
msbuildcache-reenable
dev/cazamor/selfhost/1.24-2025-06-10
dev/cazamor/upgrade-settings-containers
dev/cazamor/sui/ext-page/powershell-stub
dev/cazamor/selfhost/1.24-2025-05-15
dev/pabhoj/sui_action_overhaul
dev/cazamor/selfhost/1.24-2025-05-06
dev/cazamor/selfhost/1.24-2025-04-29
dev/cazamor/sui/ext-page/lazy-load-objects
dev/cazamor/sui/ext-page/badge
dev/cazamor/selfhost/1.24
dev/lhecker/sdk-26100
dev/duhowett/testing
dev/jadelaga/VS-Pty.Net-1.22
dev/duhowett/fhl-2025/what-if-no-content-ids
dev/cazamor/a11y/vt-seq-prototype
dev/lhecker/18584-part2
dev/lhecker/get-lang-id
dev/duhowett/hax/clogs
release-1.21
dev/pabhoj/featurellm_fix_paste
dev/lhecker/grapheme-backup
dev/jadelaga/VS-Pty.netFixes
dev/lhecker/atlas-engine-compute-shader
dev/migrie/s/ai-providers
dev/lhecker/animated-cursor-wip
dev/pabhoj/featurellm_timeout
dev/lhecker/dark-mode-alt
dev/duhowett/osc-strided-table
dev/lhecker/bugbash
dev/pabhoj/featurellm_improve_parsing
dev/duhowett/coast-to-coast
dev/lhecker/curly-improvements
dev/duhowett/net8
dev/duhowett/onebranch-custom-pool
dev/lhecker/renderer-overhaul-2nd-attempt
dev/lhecker/cleanup
dev/cazamor/sui/confirmation-announcements
dev/lhecker/theme-quality
dev/duhowett/hax/cmake
dev/lhecker/winconpty-cleanup
dev/duhowett/learn/rewrite-highlights
dev/migrie/b/no-nesting-when-searching
release-1.20
dev/lhecker/14165-conhost-font-size
dev/duhowett/sel-2-spans
dev/lhecker/7118-cursor-color
dev/lhecker/remove-glyph-width
dev/lhecker/igfw-scroll-region
dev/lhecker/17656-win32im-double-encoding
dev/duhowett/fhl-2024/merge-idls
dev/duhowett/feed-forward-variables
dev/lhecker/remove-chrome-math
dev/duhowett/copylink
dev/duhowett/applicableactions
gh-readonly-queue/main/pr-17566-de50310295b7d92ed3d51f07974a2a945776bf9d
dev/lhecker/atlas-engine-stride-copy
dev/migrie/b/bump-nuget-in-c
dev/migrie/f/992-redux-redux
dev/migrie/f/filter-weight-input-too
dev/migrie/f/disable-nesting
dev/migrie/f/local-snippets-cleaner
dev/migrie/s/1553-mouse-bindings
selfhost-1.22-bugbash-2024-06-04
selfhost/1.22-bugbash-2024-06-04
dev/lhecker/15689-tab-drag-crash-fix
dev/migrie/f/sxnui-font-size-change
dev/migrie/f/local-snippets-on-action-refactor
dev/migrie/f/just-local-snippets
dev/migrie/save-input-patches
dev/migrie/f/md-pane-official
dev/migrie/base-pane
dev/migrie/fhl/tasks-pane
release-1.19
dev/migrie/b/17130-clear-marks-2
dev/migrie/b/17075-its-me-the-killer
dev/duhowett/i-figured-out-why-sometimes-the-publish-build-failed
dev/duhowett/nuget-publication-with-aad-app-id
selfhost-1.20
dev/duhowett/graph
dev/migrie/b/15803-activate-dont-copypasta
dev/duhowett/is-pgo-broken-because-of-sui-being-slower
dev/migrie/b/remove-terminaltab
dev/migrie/fhl/md-pane
dev/migrie/fhl/local-tasks-2024
dev/migrie/fhl/2024-inline-notebook
dev/duhowett/interface-projects
dev/duhowett/dead-loc
release-1.18
dev/migrie/fhl/2024-spring-merge-base
dev/duhowett/hax/l9
inbox
dev/migrie/14073-on-main
dev/duhowett/hax/conhost_dump_replay
user/lhecker/atlas-engine-srgb
dev/migrie/fhl/sxnui-tooltips-3
dev/migrie/7718-notifications-experiments
dev/migrie/fhl/7718-notifications
dev/migrie/fhl/7718-notifications-reboot
dev/lhecker/remove-gsl
dev/lhecker/16575-TerminateProcess
dev/lhecker/window-thread-climate-control
dev/lhecker/client-context-input-output-mode
dev/lhecker/ring-buffer-input-buffer
release-1.17
dev/lhecker/propsheet-fontdlg-refactor
dev/lhecker/renderer-overhaul
dev/pabhoj/test
dev/duhowett/chop
dev/lhecker/til-ulong-cleanup
dev/lhecker/til-env-cleanup
dev/migrie/f/16005-a11y-pane
dev/cazamor/a11y/fastpass
dev/migrie/b/15487-push-cwd
dev/migrie/b/15536-or-15219-idk
dev/duhowett/move-timers-down-into-core-interactivity-etc
dev/migrie/b/15812-broadcast-paste-two
dev/migrie/fhl-fall-2023/11162-quake-III-arena
dev/migrie/fhl-fall-2023/1620-automatic-tab-progress
dev/migrie/fhl-fall-2023/9992-quake-II
dev/migrie/fhl-fall-2023/9992-default-quake-settings
dev/migrie/fhl-fall-2023/9992-window-name-settings
dev/migrie/fhl-fall-2023/oceans
dev/lhecker/ColorScheme-improvements
dev/migrie/search-v2-v3
dev/migrie/pr-15717/its-dangerous-to-go-alone
dev/migrie/f/4768-taskbar-icons
dev/duhowett/padding-in-atlas
dev/migrie/f/3121-tooltips
dev/duhowett/sticky-control
dev/duhowett/fix-tracing-2
dev/migrie/b/add-support-for-vsc-marks
dev/migrie/f/1860-this-is-literally-what-less-is-for
dev/migrie/s/5916-draft
dev/lhecker/tracy
dev/migrie/s/north-star
dev/cazamor/tag-youre-it
dev/migrie/f/12336-let-it-mellow
dev/migrie/f/now-with-more-compat-settings
dev/migrie/f/compatibility-sui
dev/duhowett/hax/wpf-atlas
dev/duhowett/fgb
dev/migrie/b/15487-relative-paths-are-hard
dev/lhecker/colrv1
loc-update
dev/migrie/fhl/dyndep-csharp
dev/migrie/fhl/dyndep
dev/migrie/fhl-clickable-send-input
dev/migrie/f/cwd-hijinks-5506-15173
dev/lhecker/openconsole-async-start
1.17
dev/migrie/bump-scratch
dev/migrie/f/3726-restartConnection
dev/migrie/b/cxn-restarting-attempt-1-backport
dev/migrie/b/9053-part-3-the-actual-doing-of-the-thing
dev/migrie/b/13388-focus-logger
dev/migrie/b/9053-part-4-i-guess-defterm
dev/migrie/oop/3/of-the-silmarils
of-the-darkening-of-valinor
dev/migrie/fhl/notebook-proto-000
dev/migrie/f/narrator-buddy
dev/migrie/mux-2.8.2-march-2023
dev/migrie/f/roast-mutton
dev/migrie/f/12861-preview-input
dev/lhecker/clang-tidy
dev/migrie/f/3121-wE-dOnT-hAvE-dEv-DaYs
dev/duhowett/compiler-compliance
dev/duhowett/i-have-a-burning-hatred-for-ntstatus-of-later-so-why-not-fix-it
dev/duhowett/shorthand-namespaces
dev/duhowett/rename-all-dlls
dev/duhowett/errordialog
dev/lhecker/gsl-narrow
dev/migrie/b/11522-dumb-idea
release-1.16
dev/miniksa/env
dev/duhowett/hax/embed-everything
dev/migrie/b/13388-attempt-003
dev/migrie/b/14512-test-research
dev/migrie/b/13388-attempt-002
dev/migrie/b/14464-copyOnSelect-moving-text
dev/migrie/s/thema-schema-for-1.16
dev/migrie/s/theme-pair-schema
dev/migrie/b/13388-experiments-1
dev/cazamor/spec/a11y-vt-seq
dev/migrie/b/14557-empty-folder-dropdown
dev/cazamor/spec/a11y-vt-seq-v2
release-1.15
dev/migrie/f/process-model-v3-test-0
dev/lhecker/vsconfig
dev/migrie/s/5000-presentation
dev/lhecker/5907-startup-perf
dev/lhecker/winrt-file-api-benchmark
dev/duhowett/128-bit-compiler
dev/duhowett/hax/arm64-native-build
dev/migrie/fhl/more-shell-integration
dev/migrie/b/13388-experiments-0
dev/lhecker/til-to-ulong-improvements
dev/migrie/s/markdown-notebooks
dev/cazamor/a11y/nav-by-page
dev/cazamor/a11y/system-menu-support
dev/duhowett/no-private-registry-keys
dev/cazamor/wpf/uia-expose-enable-events
dev/cazamor/wpf/uia-events
extendAISpec
dev/migrie/fhl/clickSendInput
dev/migrie/fhl/save-command
dev/migrie/b/theme.profile
dev/migrie/b/13943-a-test-for-this
dev/migrie/oop/2/endgame
dev/duhowett/hax/merge_idl
dev/migrie/oop/2/infinity-war
dev/migrie/spellbot-cve
dev/cazamor/a11y-sev3/new-profile-announcement
dev/migrie/fhl/upside-down-mode
release-1.14
dev/migrie/f/9458-startupInfoToTerminal
dev/migrie/fhl/5916-triggers
dev/migrie/b/13523-context-menu
dev/migrie/b/6523-endpaint-outside-lock
dev/migrie/b/12413-OnUnhandledException
dev/lhecker/render-snapshot
dev/cazamor/1.15/scroll-to-point
dev/migrie/mux-2.8-aug-2022
dev/lhecker/lock-console-guard
dev/migrie/f/1504-final
dev/pabhoj/sui_follow_ups
dev/migrie/f/til-winrt.h
dev/cazamor/color-picker-redesign
dev/migrie/fhl/vscode-autocomplete-prototype
dev/migrie/f/1504-prototype
dev/migrie/oop/2/loki
dev/migrie/oop/2/wandavision
dev/migrie/b/8698-YOURE-OUT-OF-ORDER
fabricbot-configuration-migration
dev/migrie/b/12788-did-it-work
dev/migrie/b/localtests-ci-2022
dev/cazamor/1.14/replace-compareInBounds
dev/pabhoj/preview_string
dev/cazamor/ks/switchSelectionEndpoint
dev/migrie/oop/2/COM-ISwapChainProvider-attempt-1
dev/migrie/b/dxd-marker
release-1.13
dev/migrie/b/13066-for-defterm
dev/cazamor/revert-dwm
dev/migrie/b/13066-sw_flash_repeatedly
dev/migrie/b/no-cloaky-cloak
dev/migrie/f/apples-to-oranges
dev/migrie/f/no-custom-caption-btns
dev/migrie/f/10509-mica-and-transparent-titlebars
dev/migrie/b/12911-wpf-focus-fg
dev/migrie/titebar-colors
dev/lhecker/4015-cursor
dev/migrie/fhl/rgb-rainbow-window-frame
dev/migrie/fhl/scroll-marks-prototype
release-1.12
dev/miniksa/compliance
dev/migrie/f/default-icons
dev/migrie/fhl/10175-web-search-for-text
dev/migrie/fhl/menu-complete-prototype
dev/migrie/b/2988-merged-prototypes
dev/migrie/b/2988-niksa-msgs-prototype
dev/migrie/fhl/9583-colorSelection
dev/migrie/b/10609-sui-leak
dev/migrie/b/32-attempt-3
dev/migrie/release-1.12-rejuv-attempt-2
dev/migrie/demo-for-presentation
dev/migrie/b/32-but-im-here-for-12567
dev/duhowett/conpty_first_frame_blug
dev/migrie/b/11092-unfocused-acrylic-settings
dev/migrie/localtests-in-ci
dev/migrie/b/12356-attempt-2
dev/migrie/b/12353-with-null
dev/migrie/b/12387-trim-spaces
dev/migrie/b/5033-bad-start
dev/lhecker/12351-broken-locales
dev/migrie/b/8663-input-to-oem-crash
dev/migrie/b/11743-win10-opacity-is-hard
dev/migrie/f/ctrl-click-elevate
dev/migrie/b/12196-shim-localization
dev/lhecker/issue-4015-til-rect
dev/cazamor/eim/mvvm
dev/migrie/f/--elevate
dev/migrie/b/11668-i-think
dev/migrie/b/11994-wsl-mangline
dev/migrie/eim/3475-action-xmacros
dev/migrie/eim/incremental-build-000
dev/cazamor/a11y/fake-uia-data
dev/migrie/f/non-terminal-content-elevation-warning
dev/migrie/f/632-on-warning-dialog
dev/lhecker/rgba
dev/migrie/b/8480-keybindings-in-tabs
release-1.11
dev/migrie/b/11561-dead-ends
dev/migrie/oct-21-roadmap-update
dev/migrie/fhl/adaptive-card-extension
dev/cazamor/test/11440
dev/migrie/f/warning-dlg-automation
dev/migrie/b/1.12-crash-on-exit
dev/migrie/b/11146-next-tab-in-cmdpal
release-1.10
dev/migrie/5ff9a24-and-75e2b5f
dev/duhowtt/hax/cpal-jumplist-async
dev/lelian/actionid/1
dev/migrie/f/just-elevated-state
dev/lhecker/terminal-settings-cleanup
dev/migrie/gh-10824
dev/pabhoj/cursor_light
dev/migrie/oop/wandavision
dev/migrie/oop/endgame
dev/migrie/oop/infinity-war
dev/lhecker/app-state-actually-hidden
dev/migrie/b/6160-dynamic-default-warning
dev/mgirie/b/more-nchhittest-ideas
dev/migrie/b/9320-interfacial-separation
cinnamon/fhl/find-contextmenu
dev/lhecker/wsl-distro-generator-cleanup
dev/migrie/b/10875-but-more-clever
dev/migrie/b/broken-globalsummon-overloading
dev/duhowett/hax/rle-row
dev/migrie/fhl-2021/cmdpal-select-list
dev/migrie/fhl-2021/differential-pixel-shading
dev/duhowett/hax/no-writable-glyphat
dev/migrie/fhl-2021/more-shader-variables
dev/migrie/titlebar-shenannigans
dev/miniksa/win10_font_matching
dev/lhecker/conhost-oom
dev/migrie/b/10332-less-snappy-scrolling
dev/migrie/b/7422-1px-top-border
release-1.9
dev/cazamor/move-scratch
release-1.8
dev/miniksa/manifest_2
release-1.6
release-1.7
dev/migrie/oop/the-whole-thing
dev/migrie/oop/connection-factory
dev/migrie/f/quake-dropdown-2
dev/miniksa/rle2
dev/migrie/f/quake-toCurrent-experiments-2
dev/migrie/f/quake-toCurrent-experiments
dev/migrie/f/quake-dropdown
dev/cazamor/actions-page/template
dev/duhowett/hax/cursor_stamp_foreground_background
dev/migrie/f/1860-hey-might-was-well-hack-during-a-hackathon
dev/migrie/oop-terminal.control-split-control
dev/duhowett/hax/build-with-wholearchive
dev/cazamor/spec/tsm-actions-temp
dev/migrie/oop-tear-apart-control
dev/migrie/oop-scratch-3
dev/cazamor/sui/bugfix-reload-crash
dev/migrie/f/xmacro
dev/cazamor/sui/proto/profile-nav-view
dev/migrie/f/name-windows
dev/migrie/dol/messing-with-shaders-take-1
release-1.5
dev/cazamor/sui/inheritance-hyperlinks-test
dev/migrie/r/commandline-lib-002
dev/migrie/f/com.fabrikam.toaster
dev/cazamor/adaptive-cards-prototype
dev/migrie/f/commandline-lib
dev/miniksa/zipzoom2
dev/migrie/f/remote-commandlines
dev/migrie/f/632-elevated-profiles
dev/migrie/oop-broker-000
dev/migrie/fix-pr-7015
dev/duhowett/clang
dev/miniksa/input_tests_2
dev/miniksa/input2
dev/migrie/oop-rpc-000
release-1.4
dev/migrie/oop-mixed-elevation-1
dev/migrie/oop-window-content-1
cinnamon/open-json
dev/miniksa/input_tests
dev/duhowett/hax/tsm-graphviz
dev/miniksa/input
dev/duhowett/hax/caption_buttons
release-1.3
dev/cazamor/a11y/expand-line-under-viewport
dev/cazamor/acc/ch/word-nav-perf
dev/cazamor/spec/settings-ui-architecture-draft
dev/duhowett/hax/tap_upgrade
dev/migrie/f/pane-exit-animation
release-1.2
dev/migrie/move-lib-up-and-dll-down
release-1.1
dev/migrie/f/branch-2-backup
dev/migrie/f/settings-getters-only
dev/duhowett/hax/command_palette_search
dev/migrie/f/6856-let-terminalpage-expandcommands
dev/migrie/f/theming-2020
dev/migrie/oop-scratch-4
dev/duhowett/hax/punchout
dev/migrie/s/action-ids
dev/migrie/f/lets-just-generate-these
dev/migrie/oop-scratch-2
dev/miniksa/dcomp
dev/miniksa/gotta_go_fast_spsc
dev/miniksa/gotta_go_fast
dev/miniksa/perf_skip_checks
dev/miniksa/perf_buffer_dig
dev/migrie/s/1203-cursorTextColor
dev/migrie/f/fix-intellisense-i-guess-backup
release-1.0
dev/migrie/f/execute-commandlines
dev/migrie/f/2046-Command-Palette-v2
dev/migrie/b/6421-passthrough-alt
dev/migrie/b/moving-focus-is-hard
dev/miniksa/set
dev/migrie/f/1203-phase-1
dev/migrie/f/get-localtests-in-ci
dev/cazamor/drag-panes
dev/cazamor/tile-background
release-0.11
dev/duhowett/dev/duhowett/hax/appstate_remember
dev/duhowett/load_condrv
dev/duhowett/hax/wpf_win_8_hax
dev/migrie/b/3088-weird-exact-wrap-resize
release-0.10
dev/migrie/b/4591-custom-scaling-bug
dev/duhowett/hax/attr_smuggling
dev/migrie/b/5161-mingw-vim-fix
dev/miniksa/dx_bitmap
dev/migrie/b/1503-try-messing-with-cooked-read
dev/duhowett/eyebeam
dev/migrie/b/5113-experiments
dev/duhowett/hax-selection-exclusive
dev/migrie/f/more-vt-renderer-tracing
dev/miniksa/bitmap
dev/duhowett/wprp
dev/miniksa/bitmap-mad-with-power
dev/migrie/f/resize-quirk
dev/migrie/f/reflow-buffer-on-resize-002
wpf-renderer-revert
dev/miniksa/draw
release-0.9
dev/miniksa/tabs-color-fix
dev/miniksa/4309
dev/migrie/f/just-wrapping
dev/migrie/b/3490-try-another-resize-algo
release-0.8
dev/migrie/b/3490-a-simpler-resize
dev/migrie/b/3490-resize-down
dev/miniksa/4254
dev/migrie/f/conpty-wrapped-lines-2
dev/migrie/b/be-better-at-hiding
dev/migrie/f/3327-xaml-theming-proto
dev/miniksa/gardening2
release-0.7
dev/duhowett/conpty-flags
dev/migrie/f/603-vintage-opacity
dev/migrie/PR#3181-comments
dev/duhowett/font-64
release-0.5
dev/migrie/b/663-paste-lf-always
dev/migrie/b/2011-reordered-fallthrough-strings
dev/migrie/b/411-init-tab-stops
dev/migrie/b/json-patching-is-hard
dev/migrie/b/2455-try-getting-tests-working
dev/migrie/b/1223-change-256-table
dev/migrie/f/2171-openterm.cmd
dev/migrie/f/drag-panes
dev/migrie/f/2046-command-palette
release-0.3
dev/miniksa/manager
dev/migrie/f/non-terminal-panes
dev/migrie/f/passthrough-2019
dev/miniksa/shared_pch
dev/migrie/f/1897-less-duplicated-work
release-0.2
dev/cazamor/mcs/viewport-selection
dev/duhowett/version_hack
v1.24.10212.0
v1.23.20211.0
v1.24.3504.0
v1.23.13503.0
v1.24.2812.0
v1.23.12811.0
v1.24.2682.0
v1.23.12681.0
v1.24.2372.0
v1.23.12371.0
v1.23.12102.0
v1.22.12111.0
v1.23.11752.0
v1.22.11751.0
v1.22.11141.0
v1.23.11132.0
v1.23.10732.0
v1.22.10731.0
v1.21.10351.0
v1.22.10352.0
v1.23.10353.0
v1.22.3232.0
v1.21.3231.0
v1.22.2912.0
v1.21.2911.0
v1.22.2702.0
v1.21.2701.0
v1.22.2362.0
v1.21.2361.0
v1.21.1772.0
v1.20.11781.0
v1.21.1382.0
v1.20.11381.0
v1.21.1272.0
v1.20.11271.0
v1.20.11215.0
v1.19.11213.0
v1.20.10822.0
v1.19.10821.0
v1.20.10572.0
v1.19.10573.0
v1.20.10303.0
v1.19.10302.0
v1.18.10301.0
v1.20.10293.0
v1.19.10292.0
v1.18.10291.0
v1.18.3181.0
v1.19.3172.0
v1.19.2831.0
v1.18.2822.0
v1.19.2682.0
v1.18.2681.0
v1.18.1462.0
v1.17.11461.0
v1.18.1421.0
v1.17.11391.0
v1.17.11043.0
v1.16.10261.0
v1.17.1023
v1.16.10231.0
v1.15.3465.0
v1.16.3463.0
v1.15.2712.0
v1.15.2874.0
v1.16.2641.0
v1.16.2523.0
v1.15.2524.0
v1.15.2282.0
v1.14.2281.0
v1.14.1962.0
v1.15.2002.0
v1.15.2001.0
v1.15.1862.0
v1.14.1861.0
v1.14.1451.0
v1.14.1432.0
v1.13.11431.0
v1.13.10983.0
v1.12.10982.0
v1.13.10733.0
v1.12.10732.0
v1.13.10395.0
v1.12.10393.0
v1.13.10336.0
v1.12.10334.0
v1.12.3472.0
v1.11.3471.0
v1.12.2931.0
v1.12.2922.0
v1.11.2921.0
v1.11.2731.0
v1.10.2714.0
v1.11.2421.0
v1.10.2383.0
v1.10.1933.0
v1.9.1942.0
v1.9.1523.0
v1.8.1521.0
v1.9.1445.0
v1.8.1444.0
v1.8.1092.0
v1.7.1091.0
v1.8.1032.0
v1.7.1033.0
v1.7.572.0
v1.6.10571.0
v1.5.10411.0
v1.6.10412.0
v1.6.10272.0
v1.5.10271.0
v1.5.3242.0
v1.4.3243.0
v1.5.3142.0
v1.4.3141.0
v1.4.2652.0
v1.3.2651.0
v1.3.2382.0
v1.2.2381.0
v1.1.2233.0
v1.2.2234.0
v1.1.2021.0
v1.2.2022.0
v1.1.1812.0
v1.0.1811.0
v1.1.1671.0
v1.0.1401.0
v0.11.1333.0
v0.11.1251.0
v0.11.1191.0
v0.11.1111.0
v0.11.1121.0
v0.10.781.0
v0.10.761.0
v0.9.433.0
v0.8.10261.0
v0.8.10091.0
v0.7.3451.0
v0.7.3382.0
v0.7.3291.0
v0.7.3252.0
v0.6.3181.0
v0.6.2951.0
v0.6.2911.0
v0.5.2762.0
v0.5.2761.0
v0.5.2681.0
v0.5.2661.0
v0.3.2321.0
v0.4.2342.0
v0.4.2382.0
v0.3.2171.0
v0.3.2142.0
v0.2.1831.0
v0.2.1715.0
v0.2.1703.0
v0.1.1621.0
v0.1.1581.0
v0.1.1502.0
v0.1.1431.0
v0.1.1361.0
v0.1.1093.0
v0.1.1161.0
v0.1.1204.0
experiment-master
v0.1.1025.0
experiment-OutsideBuild
broken-tabstops
RS2-final
v0.1.1002.0
experiment-rel-windows-inbox
experiment-f-ServerApp
v0.1.1211.0
1904.29002
1810.02002
1708.14008
Labels
Clear labels
⛺ Reserved
A11yCO
A11yMAS
A11ySev1
A11ySev2
A11ySev3
A11yTTValidated
A11yUsable
A11yVoiceAccess
A11yWCAG
Area-Accessibility
Area-AtlasEngine
Area-AzureShell
Area-Build
Area-Build
Area-Chat
Area-CmdPal
Area-CodeHealth
Area-Commandline
Area-CookedRead
Area-DefApp
Area-Extensibility
Area-Fonts
Area-GroupPolicy
Area-i18n
Area-Input
Area-Interaction
Area-Interop
Area-Localization
Area-Output
Area-Performance
Area-Portable
Area-Quality
Area-Remoting
Area-Rendering
Area-Schema
Area-Server
Area-Settings
Area-SettingsUI
Area-ShellExtension
Area-ShellExtension
Area-ShellExtension
Area-Suggestions
Area-Suggestions
Area-TerminalConnection
Area-TerminalControl
Area-Theming
Area-UserInterface
Area-VT
Area-Windowing
Area-WPFControl
AutoMerge
Blocking-Ingestion
Culprit-Centennial
Culprit-WinUI
Disability-All
Disability-Blind
Disability-LowVision
Disability-Mobility
External-Blocked-WinUI3
Fixed
Gathering-Data
good first issue
HCL-E+D
HCL-WindowsTerminal
Help Wanted
Impact-Compatibility
Impact-Compliance
Impact-Correctness
Impact-Visual
In-PR
InclusionBacklog
InclusionBacklog-Windows TerminalWin32
InclusionCommitted-202206
Issue-Bug
Issue-Docs
Issue-Feature
Issue-Feature
Issue-Question
Issue-Samples
Issue-Scenario
Issue-Task
Needs-Attention
Needs-Author-Feedback
Needs-Bisect
Needs-Discussion
Needs-Repro
Needs-Tag-Fix
Needs-Tag-Fix
Needs-Triage
No-Recent-Activity
Priority-0
Priority-1
Priority-2
Priority-3
Product-Cmd.exe
Product-Colortool
Product-Colortool
Product-Colortool
Product-Conhost
Product-Conpty
Product-Meta
Product-Powershell
Product-Terminal
Product-WSL
pull-request
Resolution-Answered
Resolution-By-Design
Resolution-Duplicate
Resolution-External
Resolution-Fix-Available
Resolution-Fix-Committed
Resolution-No-Repro
Resolution-Won't-Fix
Severity-Blocking
Severity-Crash
Severity-DataLoss
spam
this-will-be-a-breaking-change
Tracking-External
WindowsTerminal_Win32
Work-Item
zAskModeBug
zInbox-Bug
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/terminal#14472
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ghost on GitHub (Jul 12, 2021).
The development team is so full of excuses, and yet continue to make a terrible and slow terminal that:
1.) Can't render Arabic or Hebrew or any other RTL language correctly when other terminals are able to do so
2.) Can't render a 1GB file in under a second when other projects are able to do so
3.) Took over 20 years to add tabs
4.) Doesn't properly support RTL text input
5.) Continues to be much much slower than every single Linux terminal out there
6.) Makes excuses for adding glyph caching by trying to hand it off to a "framework" that doesn't do glyph caching yet:
7.) Calls all of this "an entire doctoral research project in performant terminal emulation" when every other terminal is faster than it.
8.) The team clearly doesn't know how to do rendering very well, considering they are claiming 2D text rendering is so hard for them to do while actively using frameworks that are supposed to be designed for this exact purpose.
9.) Has very buggy animations since the beginning of the project
10.) Excuses poor performance because they designed the terminal badly from the very beginning, as shown here:
Firstly, you wouldn't have to take "somebody offline for the months it would take to retool the entire renderer" if you had written the renderer correctly to begin with. And secondly, what you've just described is called the Cost-Sunk Fallacy, and it's making your software worse.
11.) Intentionally knows that they are going to get more backlash for a terrible terminal, so they've prevented people from discussing this issue: https://github.com/microsoft/terminal/issues/10362
12.) Would rather sacrifice 100x performance slowdown for "readability and maintainability" because of incorrect ideology:
Microsoft, fire your crappy developers and stop putting people who don't know how to do rendering in charge of rendering. There's a problem when every other terminal in existence is faster than your terminal, and has been for over 20 years.
You'd think after well over 6 decades of terminals being in existence we would have figured all of this out by now.
Hopefully DHowett is aware that video terminals have existed since the 1950s. The DEC VT100 was from 1978, even.
@ghost commented on GitHub (Jul 12, 2021):
For people who want to see a terminal renderer demo that can parse VT100 escape sequences, render Arabic and Hebrew and Emojis correctly, with correct emoji colors, and can render a 12GB file in 14 seconds, and a 1GB file in under a second, look here:
https://github.com/cmuratori/refterm
Maybe someday the Microsoft teams will get their act together and stop excusing their poor performance for their tools. Particularly the VS team, the VS Code team, and the Terminal team.
And for a performant full cross-platform terminal, you can also try Alacritty: https://github.com/alacritty/alacritty
And just to prove that it's possible to do all of this, here's the YouTube demos showing all of this on-screen:
https://www.youtube.com/watch?v=hxM8QmyZXtg
https://www.youtube.com/watch?v=99dKzubvpKE
@skyline75489 commented on GitHub (Jul 12, 2021):
Hi there! We have #10462 to track the performance issue you mentioned. And #538 for general RTL issue, if you’re interested.
Also I am actually NOT part of the official team. I do work for MS but I don’t work for the terminal team.
@ghost commented on GitHub (Jul 12, 2021):
I appreciate your response, but what I want Microsoft to do is actually listen to people. Not make excuses. Not call things "doctoral research projects". Microsoft developers have been doing this for decades.
If you all are actually serious about this, the first step you need to be doing is recognizing that your terminal actually is slow. The next step is to not just dismiss what everyone has suggested - and this goes for every Microsoft developer, and to recognize that you've actually heard the feedback, for example, by repeating the feedback back to us (instead of using generic "your feedback has been heard" stuff).
And the 3rd step is to actually recognize the "research" of what other people have done, projects like refterm and Alacritty and other terminals.
For example, responses like this below are not helpful! You guys have DirectWrite and Uniscribe that's supposed to do this stuff! Why aren't you using it? You should be able to print RTL, at the very least, by now.
@skyline75489 commented on GitHub (Jul 12, 2021):
Sure. I think it's basically a common understanding for everyone in the team that both conhost & Windows Terminal is slower than the terminals on Linux. In fact the entire console system was not just slow, but overall terrible before the ConPTY refactoring. Back then one actually needs to use projects like winpty to build a third-party terminal application, which basically read all the things on the screen & convert them to VT codes. How crazy is that? Right now with ConPTY, things are better, but still not ideal. The performance gap between ConPTY & the pty on Linux is huge right now, which is not news to you, and everyone else.
The renderer work (refterm) as you mentions is recognized in #10461. However due to licensing issue, no one in the team is allowed to see the code (GPL-licensed). This even includes outside contributors like me. MS treats license issue very seriously, because some of the code in this repo will be merged back into Windows itself. The last thing MS want would be licensing issue inside Windows source code.
For RTL support, I don't know much about it, so I'm not commenting on that.
@skyline75489 commented on GitHub (Jul 12, 2021):
That is my word. The specific issue I refer to in that thread is fixed in #10426, which sadly doesn't bring 3X performance boost because the original code is flawed in a way that bypasses the worst case. If you're interested, check out this comment https://github.com/microsoft/terminal/issues/10462#issuecomment-874376254 to see what's been done since the initial issue #10362.
@ghost commented on GitHub (Jul 12, 2021):
You guys aren't blocked from the YT videos Casey made, I assume?
What about Glyph Caching? Has that been implemented yet? You guys have had a month to implement that.
Have you considered rebuilding the terminal from the ground-up (starting from scratch)? Considering that it took Casey so little time to implement all of this, the cost of starting over seems to be smaller than the cost of trying to fix something that's already terribly broken.
@skyline75489 commented on GitHub (Jul 12, 2021):
If by "Glyph Caching". you mean the "glyph atlas renderer", that is tracked in #10461 which is assigned to @lhecker himself.
If you're talking about the internal issue inside DirectWrite, I think @lhecker has recently contacted some person in DirectWrite team and he may have something to say bout this one. I had the idea way back in #6300 for some run-level caching, but I didn't go further.
If you only care about the renderer part, the work in #10461 can be seen as "from the ground-up". It will be a brand new renderer. And I think Leonard have seen some promising result with his prototype. If you want a brand new terminal from ground-up, that would require other works than just the renderer.
@shawnz commented on GitHub (Jul 12, 2021):
Works fine for me. If you hate the direction of the project so much shouldn't you consider just using a different one?
@ghost commented on GitHub (Jul 12, 2021):
Now if only y'all had recognized all of this originally rather than making excuses and then doing it after the fact.
@ghost commented on GitHub (Jul 12, 2021):
Some people might think that everybody is fussing over terminal performance for no practical benefit.
But this actually reveals a very big cultural problem where performance is never taken seriously to the point that the majority of applications on systems are now dramatically slower than they should be (aside from video games), and to the point that every single benefit we've gained from newer CPUs has been diminished because of this.
By not taking even the most basic of performance considerations seriously, you are teaching the new programmers who are looking to existing programmers that either there's nothing that can be done, when that is far from the truth, or that performance isn't worth it somehow.
@ghost commented on GitHub (Jul 12, 2021):
A list of the issues @skyline75489 has posted above:
@skyline75489 commented on GitHub (Jul 12, 2021):
I personally wish this hadn't turned into some kind of flame war in the first place. The original issue was full of misunderstanding & miscommunication. I am one of them to blame, if there has to be someone to blame.
To speak on my own behalf, this terminal team I know of, take performance very seriously. In fact my earliest PRs are almost all about performance, because the performance of the Windows Terminal ~0.6, is just terrible. Way more terrible than the terminal you see today. I've sent various kinds of perf PRs. The members from the official team also write various kinds of perf PRs. I've never seen the members of the team saying "hey this PR is about performance, and we don't care about them". Never have I seen anything like that.
Again, in #10362 there's a lot of unnecessary emotions flowing around, which stepped in the way of efficient communication and make people feel that they are dismissed. But that's not the team I know of. The team I know of is full of talented engineers and they're very passionate about the project. They have been maintaining the project for 5-6 years. If the project was a newborn, it could already know TikTok now.
But what's done is done. The best we can do it to recognize the mistakes, learn from them and try to move on.
@ghost commented on GitHub (Jul 12, 2021):
@skyline75489 I personally don't understand what all of the emotions and dismissing was for. Casey point out things that you could do better, politely imho (I read everything he said, I personally didn't think he said anything inflammatory in that specific issue), and then was met by people, imo, overestimating the work that needed to be done and outright dismissing his suggestions. He even asked what the hard part was.
In fact, I would say Casey was way more polite than usual :D
Especially considering how he hasn't always had the best interactions with the Visual Studio team
@skyline75489 commented on GitHub (Jul 12, 2021):
You're free to have your opinion on whatever it's in #10362. I can't speak for anyone but myself. Let's just say we are all just humans and make mistakes.
If you don't mind, I think we should close this issue and redirect future discussion to #10462 . This thread isn't really about technical aspects anymore. If you really want to talk about it, you're free to go over to my repo where I wrote a bit more explanation.
Everything we said here will generate an email for everyone who watches this project, and I don't want to annoy them too much with my personal opinions & non-tech talks.
@ghost commented on GitHub (Jul 12, 2021):
I feel like this should have been posted to here instead.
Just note that this response, below, is probably the reason why this "controversy" is ongoing:
You are continuing to dismiss rendering performance on the basis that refterm doesn't inplement non-rendering features that wouldn't necessarily slow down the rendering anyways - even though, refterm doesn't seem to be that far from an actual terminal, afaik.
I hope you are not serious that the rest of the features refterm would need to support would slow down the terminal so much that it drops that much in performance.
@skyline75489 commented on GitHub (Jul 12, 2021):
I suggest you read the "legacy code" section of my section. Or my previous comment suggesting one need to use WinPTY to build a terminal (https://github.com/microsoft/terminal/issues/10623#issuecomment-878012390). The main reason behind this is that, legacy console applications does NOT speak VT at all. You can support all the VT code in the word, but legacy console applications on Windows won't work in a terminal that only understands VT, this includes Win32-Vim, Far Manager, mc, old version of Git Bash/MINGW. The list goes on.
This kind of legacy is a huge burden to Windows Terminal, both architectural-wise & performance wise. One example of this is Alacritty, which is a super fast terminal on Linux/macOS, regarding rendering performance. But on Windows, due to ConPTY (if you use ConPTY, then you can build your terminals using just VT, this is how Windows Terminal is now), Alacritty is severely slowed down.
I'm not finding excuses, In fact it only shows how bad ConPTY is, And we're tracking the work in this repo to improve that performance.
@ghost commented on GitHub (Jul 12, 2021):
Just because refterm doesn't handle legacy applications doesn't make it any less of a terminal. What makes it not a terminal, I assume, is mostly the input stuff (for both keyboard and mouse).
Various linux terminals don't handle legacy win32 console applications, are they also not terminals? Does them being so much faster than Windows Terminal suddenly not matter because they don't support legacy win32 console applications?
And do you actually know that you can't get a terminal with similar performance to refterm while also supporting legacy win32 console apps, or are we just assuming this?
Sorry, but to me it sounded like you were trying to cast doubt on refterm's performance by twisting the notice that refterm isn't a terminal.
@ghost commented on GitHub (Jul 12, 2021):
By the looks of it, you're trying to twist facts to make it seem like Terminals are harder than they actually are, which is the same thing that other contributors to Windows Terminal did in the original thread.
Alacritty was functional and fast in 2018. It didn't take them 5 years to get a functional and fast terminal emulator.
It also didn't take GNOME terminal 20 years to become functional. Most of that time is called maintenance (or adding extra features).
@skyline75489 commented on GitHub (Jul 12, 2021):
I'm not sure if you want a "Windows" Terminal or "Linux" terminal, because I just talked about how fundamentally different the console subsystem is between Windows & Linux. Of course this is no excuse for Windows Terminal to be slow than those on Linux. It just takes time, I think. The ConPTY article was in 2018, I'm guessing that's about the time that MS tried to improve the console subsystem.
I'm glad you asked. There's this similar project https://github.com/jfhs/handterm which does use ConPTY and aims to have better performance. It's actually quite good (also MIT-licensed). It's faster than Windows Terminal & conhost. It's still in its early development, though. I'm really looking forward to see how it will turn out to be in the future.
I don't want to cast doubt on anything. If by "terminal" we mean a terminal we can daily drive with, then refterm is indeed NOT a terminal, right? If by "terminal" we mean "it can render text", then I guess I should be clearer about it.
I can't really control how you feel about my article. I meant to only talk about fact, and not opinions. I think I made it clear in that article of mine. I have huge respects for authors behind Alacritty & GNOME terminals. I'm hoping they have the same respect for people who built Windows Terminal.
Again, I'm kindly asking you to move this discussion somewhere else, because I don't want to harass people with non-tech talks. I love to see Github as a tech-only place, even it's just a dream.
@ghost commented on GitHub (Jul 12, 2021):
Why is it not a terminal? You seem to be suggesting in the article it's not a terminal because it doesn't support legacy win32 console apps. Yet there are various terminals on Windows that only do VT100. Again, are those suddenly not terminals?
Refterm is certainly not a terminal yet, but it's not because it doesn't support win32 legacy console apps, as you seem to suggest.
Let me just make this clear, a terminal emulator is an emulator that emulates any terminal, like DEC VT100, VT102, etc. If a program emulates all of DEC VT100, it is a terminal emulator. It's that plain and simple.
This is exactly what you are trying to do. You are subtly hinting that refterm is only as fast as it is because it's not a terminal, and that had it been a real terminal, it would suddenly be significantly slower. The fact is that you don't actually know that. You can continue the rhetoric all you want, but I can see right past it.
Except you talk about opinions right within the article, so...
@ghost commented on GitHub (Jul 12, 2021):
Here's what I see...
1.) You are trying to impugn other people's claims by implying that terminals are harder than they really are, and by overestimating the time it takes to make a terminal emulator.
2.) You are trying to impugn other terminal projects' performance benchmarks by implying that they have to do less than what you "must" do.
3.) You are trying to impugn certain terminal projects by implying they aren't even that close to being a terminal, let alone actually being a terminal.
4.) You tried to impugn everything I said by implying that I'm only talking about opinions, when from the very start it was the Windows Terminal team that has been doing this, at least up until they were proven wrong.
@skyline75489 commented on GitHub (Jul 12, 2021):
I've changed some of words in the article. I made it abundantly clear that, by terminal I mean you can daily drive with it using all kinds of applications include legacy apps & VT apps, basically offers same level of functionality as conhost & Windows Terminal.
I don't want it to be slow. If refterm/handterm turns out to be very fast & fully functional, I would probably ditch Windows Terminal. Why not? Please don't assume that we're all just bots controlled by Microsoft. Everyone has the free will to choose whatever they like to use. You can even use GNOME terminal right here on Windows, thanks to WSLg. To quote Dustin's word, Windows Terminal is never meant to be the only choice. Just like every other apps that comes with the OS (sry, paint.exe).
Well I tried to be. I can not make everyone happy, that's for sure.
You can completely ignore my opinions. I am not officially related to this project. I contribute to this project for fun. I answered you issue because I want to be helpful. What does all those "impugn" gain me? Self-esteem? Like I said, I would probably ditch Windows Terminal the second I found a better one. Does this help defending myself?
Sorry everyone who's harassed by all these lengthy emails from me. This will be my last for the day.
@ghost commented on GitHub (Jul 12, 2021):
So... to summarize, it took 29 days for someone to make a whole conhost replacement that's faster than windows's conhost (even if it's unstable, it still proves my point), and it took a couple of weeks for someone to make a vastly more performant terminal emulator renderer.
What exactly has the Terminal team been doing for the past 3-4 years?!?
(and let us just remember that handterm is made by one person so far, without funding afaik, while Microsoft is this giant company with many many developers)
@ghost commented on GitHub (Jul 12, 2021):
@skyline75489 It sounds to me like you're trying to defend the Windows Terminal team, which makes sense, especially if you know the people.
The part you didn't take into account is that it's not helpful to those people to coddle them.
@ghost commented on GitHub (Jul 12, 2021):
Let's just take a look, for a second, at the general trends that Microsoft has been going in:
@zadjii-msft commented on GitHub (Jul 12, 2021):
@krixano Sorry that you've now been dragged into this whole debate that was spawned from a simple misunderstanding. We're actually really interested in a lot of the optimizations that were suggested in the original thread! It's a shame that our particular brand of sarcastic, self-deprecating humor in the original thread happened to spawn an entire flame war that's gone on entirely too long.
We're tracking some discrete improvements to the Terminal over in #10461, #10462, #7147, #3515, and pretty much anything else tagged
Area-Performance. We'd love constructive feedback on those threads, or even contributions if you have any ideas of your own!As the rest of this thread hasn't been particularly constructive, I'm gonna lock it to let everyone cool down a bit.