mirror of
https://github.com/microsoft/terminal.git
synced 2026-09-24 07:54:35 +00:00
Enable Terminal to persist / restore instance settings #1050
Closed
opened 2026-01-30 22:15:10 +00:00 by claunia
·
57 comments
No Branch/Tag Specified
main
dev/duhowett/fhl-2026/remove-paste-hairpin-handler
dev/duhowett/win7-wpf-termcontrol-squash
dev/lhecker/20226-present-leaks
dev/duhowett/wpf-1-autoscroll-to-interactivity
dev/duhowett/wpf-3-swapchain-handle
dev/duhowett/wpf-2-midi-audio-timer
dev/migrie/overview-for-pr
dev/migrie/b/markdown-paste
dev/duhowett/padding-in-atlas
fix/german-split-pane-tooltip
release-1.25
dev/cazamor/sui-rejuv/fix-spaces
dev/migrie/per-window-final
dev/cazamor/selfhost/2026-08-31
dev/migrie/b/independent-animations
dev/pabhoj/wtcli
dev/cazamor/conhost/bugfix-a11y-find
dev/cazamor/conhost/bugfix-a11y-find-1.24
dev/lhecker/theme-quality-test
dev/lhecker/theme-quality
dev/cazamor/selfhost/sui-rejuv
dev/cazamor/fix/search-selection-off-by-one
dev/duhowett/even-more-builtin-glyphs
dev/crutkas/kitty-pr1
dev/cazamor/toast/activity
release-1.24
users/GitHubPolicyService/d8615b98-f5fa-4462-bf7f-c44a1cc12096
dev/cazamor/selfhost/2026-06-18
dev/migrie/f/new-profile-subcommand
dev/cazamor/sui-rejuv/profiles-v2
dev/duhowett/asan-for-all
dev/cazamor/sui-rejuv/profiles-new
dev/cazamor/sui-rejuv/expander-groups-new
dev/cazamor/auto-save/refresh-settings
feature/llm
dev/cazamor/auto-save/model/json-manager
dev/cazamor/auto-save/settings-model
dev/migrie/s/snippet-params
users/merlinbot/1es-pt-auto-baselining-pr
niels9001/inactive-tab-foreground
dev/cazamor/selfhost/2026-05-20-home
dev/duhowett/fzf-vcxproj
dev/cazamor/selfhost/2026-05-20
dev/cazamor/selfhost/2026-05-19
dev/cazamor/selfhost/2026-05-18
niels9001/fontweight-fixes
niels9001/page-transitions
dev/duhowett/fhl-2026/rewrite-paste-and-dragdrop-handling-writeinputstring
dev/migrie/f/overview-view
dev/cazamor/selfhost/2026-05-13
dev/cazamor/selfhost/2026-05-13-sui
dev/yeelam/f/BuildTest
dev/duhowett/hax/our-own-tabview
dev/cazamor/bugfix/close-scratchpad
dev/cazamor/selfhost/2026-05-05
dev/cazamor/selfhost/2026-05-04-workspaces
dev/cazamor/selfhost/2026-05-04
dev/lhecker/20149-hotfix
dev/lhecker/osc-7-wsl
dev/migrie/workspaces-real
dev/migrie/fhl-spring-2026/quake-4
dev/lhecker/pwsh-5.1
dev/cazamor/sui/dropdown-page
dev/cazamor/selfhost/2026-04-08
dev/cazamor/selfhost/2026-04-06
dev/migrie/fhl-spring-2026/confirmCloseOn
dev/cazamor/confirmCloseOn/dont-ask-me-again
dev/lhecker/inproc-conpty
dev/duhowett/powershell-module-supercharger
dev/cazamor/a11y/vt-seq-prototype
dev/migrie/fhl-spring26/osc777-2
dev/migrie/fhl-spring26/2/notification-infrastructure
dev/migrie/fhl-spring-2026/side-tabs
dev/cazamor/copilot/playground
dev/migrie/fhl-spring-2026/quake-3.5
dev/migrie/fhl-spring26/osc777
dev/migrie/fhl-spring26/unpackaged-notify
dev/migrie/fhl-spring26/bellStyle-notification
dev/migrie/fhl-spring26/activity-notifications
dev/migrie/fhl-spring-2026/x-open
dev/migrie/fhl-spring-2026/quake-5
dev/migrie/fhl-spring26/nextTab-filter
dev/duhowett/atlas-draw-d2d-dots-curlies-consistently
dev/lhecker/14165-conhost-font-size
dev/lhecker/ottosson-by-default
dev/duhowett/hax/unix-pty
dev/duhowett/hax/cmake
dev/lhecker/generate-256-colors
dev/lhecker/dcs-perf
dev/lhecker/1410-large-scrollback
dev/cazamor/selfhost/2026-02-10
dev/lhecker/11509-kitty-keyboard-protocol-wip
dev/cazamor/selfhost/2026-01-29
dev/lhecker/benchcat-fix
dev/duhowett/eoy-25/allow-set-foreground
release-1.23
dev/cazamor/bot/deprecate-area-atlasengine
dev/cazamor/selfhost/2026-01-20
dev/cazamor/selfhost/2026-01-12
dev/cazamor/spec/auto-save
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/duhowett/vt-cache-changes
dev/cazamor/uia-leak
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/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/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/winconpty-cleanup
dev/duhowett/learn/rewrite-highlights
dev/migrie/b/no-nesting-when-searching
release-1.20
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/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/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/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.25.1912.0
v1.24.11911.0
v1.25.1322.0
v1.24.11321.0
v1.25.1241.0
v1.25.1171.0
v1.25.923.0
v1.24.10921.0
v1.25.622.0
v1.24.10621.0
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#1050
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 @zadjii-msft on GitHub (May 14, 2019).
Let the user set a global setting to have the terminal re-open with whatever profiles were last open.
Thoughts:
THIS IS NOT A DISCUSSION OF PRESERVING WINDOW CONTENT, ONLY OPEN WINDOW PROFILES
This also includes restoring things like previous window positions.
@glen-84 commented on GitHub (May 21, 2019):
IMO:
Open a fresh window. If you later add support for window history, they could use a "Recently closed windows" menu to restore the window with the same set of tabs.
That would be the simplest solution probably, but it might not be ideal if the application is improperly shut down. An alternative would be to continuously track open windows, tabs, panes, and working directories as changes are made, and persist those changes immediately (or on a timer).
Firefox and Chrome have an "Exit" option, which closes all windows. When you start the application again, the windows are restored.
In general, I think that it would be great if Windows Terminal mimicked the behaviour of browsers.
@mdtauk commented on GitHub (May 21, 2019):
I know this is just about tabs and pane arrangements, but why not restore the buffer with all the previous output strings in place?
@glen-84 commented on GitHub (May 22, 2019):
I was thinking, if the state is stored in a human-readable format, it could also be hand-edited by users, and generated/modified by an external script or programme.
A made-up example:
(As usual, I wish that people would move away from JSON and instead use something more suited to configuration files, like YAML.)
@mdtauk,
To limit the scope of the feature and get it released sooner. The format that I show above could easily be extended at a later stage.
@ExE-Boss commented on GitHub (May 22, 2019):
The thing that makes me hate YAML is that the spec doesn’t support tabs.
I personally prefer HOCON over YAML and JSON.
The former because of tabs, and the latter because of comments.
@JCKodel commented on GitHub (Jun 22, 2019):
Use the browser behavior. It works and it is familiar. Also, would be nice to detach/reatach tabs (as Chrome).
It would be nice to persist everything (including history) of each tab. It would be amazing to have up arrow history persisted as well. You can use all my %USERPROFILE% space for that =)
As in a browser, when a tab is closed, its state remains (so I can reopen closed tabs with Ctrl+Shift+T). This would be awesome. Perhaps some settings to limit the number of persisted sessions?
As in a browser, [X] closes all tabs (I can reopen them with Ctrl+Shift+T - it will restore entire windows if needed).
@bitcrazed commented on GitHub (Sep 25, 2019):
Updated title to better describe the ask, which also came-up in this Twitter thread: https://twitter.com/stanzillaz/status/1176675911275556866
@DHowett-MSFT commented on GitHub (Sep 26, 2019):
Renaming it again because it really seems to pertain to saving info about specific instances of specific profiles. We can quibble about session/profile/instance later. 😄
@getify commented on GitHub (May 24, 2020):
Still feeling this pain every time I re-open. I don't even mind it not remembering size, since I set that in my config. I just really hate it not remembering position, because on my system, every time it opens, the top-left corner is about 30px to the right/down from the last time it opened, so it shifts little by little until something resets it back to the top-left and the cycle repeats. That is endlessly annoying.
Would love even a minimal interim on window size being remembered quicker, even if this larger feature is still being worked out. Please!? :)
@zadjii-msft commented on GitHub (May 26, 2020):
@getify You know you can use the
initialPositionto set a launch position for the Terminal window, right?@getify commented on GitHub (May 26, 2020):
@zadjii-msft No, I was not aware of that. Maybe it was added after the last time I had looked at the docs.
Just tried it, and with some fiddling it seems fine for now as an interim. I use a left-side taskbar, so it was a little annoying that the "X" position isn't "available desktop coordinates" but "absolute screen position". I figured out with some trial and error that
93was the right magic number for my current setup.@smykhailov commented on GitHub (May 27, 2020):
I found some workaround for this, which works for me and maybe will be helpful for others.
I created cmd file with the following command:
wt.exe -p PowerShell -d "D:\Projects" ; split-pane -p PowerShell -d "D:\Projects\foo" ; split-pane -H -p PowerShell -d "D:\Projects\bar" ; -p cmd -d "D:\Projects" ; -p Ubuntu ; focus-tab -t 0which opens the tabs and panes I need to have opened.
also in
settings.jsonI added the position and size:with
x: -1760I open terminal on my left monitor :)@mws-rmain commented on GitHub (Jun 15, 2020):
When restoring 'last position', please remember to handle which monitor (assuming more than one) the position refers to.
@igorakkerman commented on GitHub (Jul 3, 2020):
Do not only remember the last monitor that was used, but also remember the last position used on other monitors.
When I have the Terminal open on my big monitor and disconnect my notebook, it will appear on my notebook's screen, of course. Now, it would be great if Terminal remembered the last position used when it was open on my big monitor's and my notebook's screens. Then, when I would re-connect my big monitor, the Terminal should appear on my big monitor, at the last position on that screen. If I disconnect my big monitor again, the Terminal should come back to the last position on my notebook's screen.
That is, the application should store the last monitor used and a table mapping each monitor to the position and dimensions the Terminal occupied on that monitor.
@radutomy commented on GitHub (Aug 17, 2020):
Also remember position if opened on another virtual desktop.
@clounie commented on GitHub (Dec 9, 2020):
^ This would be great. But would rather have basic functionality than wait extra time for macOS tricks.
@glen-84 Pretty much nailed behavior with his comment about "do as browsers do". It keeps things fairly simple, and those are patterns that, while fairly powerful, anyone who uses a computer is familiar with.
@NeilMacMullen commented on GitHub (Feb 1, 2021):
As described in #8989, if the state can be persisted to file as suggested in https://github.com/microsoft/terminal/issues/766#issuecomment-494689538 then a desirable feature would be to be able to invoke a new terminal instance and supply that particular configuration as the startup state (via argument). That would help alleviate some of the ambiguity around what to do in the case of multiple open instances.
@brantPTS commented on GitHub (Feb 2, 2021):
@zadjii-msft
You should have this restore just like a browser, i.e., either restore last window closed, or if they select "Exit" command, restore all windows. What would be really awesome would be to save command history in each tab so you can just up arrow to bring back recent commands. That will make this indispensable.
Thank you.
@zadjii-msft commented on GitHub (Feb 2, 2021):
FYI this has been discussed to death elsewhere in this repo - it's not the terminal's responsibility to remember what the last commands entered were. Most modern shells (e.g.
pwsh,bash,zsh) will already do this.cmdcan't do this, becausecmdhas never done that, andcmdis in maintenance-only mode.The rest though - I'm on board with all that ☺️
@Poopooracoocoo commented on GitHub (Feb 15, 2021):
hey @zadjii-msft (sorry if you're not back from your vacay) this issue doesn't sound like remembering the size and position of a Terminal window to many users, including myself. The discussion below it and the closed issues do make it look like it, but not everyone will have the time and patience to do that. Mind updating the issue to say something about it independent of there being an option to restore the last session? :)
@zadjii-msft commented on GitHub (Feb 16, 2021):
Okay, sure. I'll update the OP. To clarify:
@igorakkerman commented on GitHub (Feb 16, 2021):
@zadjii-msft thanks for clarifying. In your first item, you refer to restoring the window state across terminal launches. Should we have another issue for restoring the window state while it is running, but after an external monitor is disconnected and re-connected? (https://github.com/microsoft/terminal/issues/766#issuecomment-653671768)
@zadjii-msft commented on GitHub (Feb 16, 2021):
That's totally something that should have it's own issue. FYI I don't think any other app does this currently - I'm constantly repositioning windows when I dock/undock my laptop.
That ask is now #9188
@marcelo-mason commented on GitHub (May 9, 2021):
This issue is opened for two years. Unusable terminal for any poweruser for two years. How about just get something done, then figure out how to make it perfect later.
@yodaldevoid commented on GitHub (May 9, 2021):
@marcelo-mason If you feel so strongly about it, as it is an open source project you are always free to submit a proposed spec for the feature. While I don't know for certain, I have the feeling that the obvious movement on this feature is not due to people not thinking it is important but because other features have taken precedence because people have decided that they are more important. This feature might see more movement if it had a champion to push it forward; maybe you fit that roll?
@zadjii commented on GitHub (May 10, 2021):
That's absolutely true. This is a big project, with a lot of high priority features in development all the time. A lot of the groundwork for this particular feature is in progress over at #8771. There's just only so much bandwidth for designing so many features at a time, and the team is currently busy with the Settings UI (#1564), quake mode (#653), tab tear out (#1256), setting a default terminal application (#7489), so there's not really any other bandwidth at the moment. It's still high up on the priority list though, and if anyone would like to make progress faster, I'm sure the team would be happy to review a spec proposal or a PR ☺️
@ghost commented on GitHub (Oct 20, 2021):
:tada:This issue was addressed in #11083, which has now been successfully released as
Windows Terminal Preview v1.12.2922.0.🎉Handy links:
@ghost commented on GitHub (Oct 20, 2021):
:tada:This issue was addressed in #10972, which has now been successfully released as
Windows Terminal Preview v1.12.2922.0.🎉Handy links:
@Poopooracoocoo commented on GitHub (Oct 20, 2021):
I got my party poppers out too early there. I thought this was fixed... Terminal STILL doesn't persist its window size and position!
#5858 was closed in favour of this issue...
Tested on Terminal Preview v1.12.2922.0
And strangely it doesn't seem to use WinUI 2.7 with the new styles.
Something that's present in the release build is a strange window that is opened briefly before Terminal opens.
@zadjii-msft commented on GitHub (Oct 20, 2021):
Did you enable the setting?

It won't work for elevated windows at the moment.
That's by design, see #11231
File a new issue for that, let's not take this thread off topic.
@alrz commented on GitHub (Oct 20, 2021):
Any reason to not set this by default?
Also, I think
"confirmCloseAllTabs": falseshould be the default too considering we preserve the state.@Poopooracoocoo commented on GitHub (Oct 20, 2021):
That's not what I want. That's session restore, right? It looks like what should just be the normal behaviour was tied to that feature.
@Rosefield commented on GitHub (Oct 20, 2021):
I apologize if the naming is confusing. The issue, I think, is that a "session" is not well defined yet anywhere, and the wording was based on other applications (such as Edge) to be forward looking for when things like #961 are also implemented.
The exact behavior of this feature when the setting is enabled is, from the docs (https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup#behavior-when-starting-a-new-terminal-session-preview)
@Poopooracoocoo commented on GitHub (Oct 20, 2021):
Oh I see. That should be on by default to match every other Windows app then. Why is it an option like alrz said? :/
The actual restoring of content is completely separate to me.
@Rosefield commented on GitHub (Oct 20, 2021):
Currently the feature is being locked to the preview build while it is tested for stability (since there were a bunch of changes under the hood). While I cannot speak for them, I am sure the team will reevaluate whether it is a default or not depending on how it does.
@zadjii-msft commented on GitHub (Oct 20, 2021):
Yep, basically that. It's not on by default because we wanted to see how it landed. If it's stable enough, then it very well may end up as the default behavior in 1.12 stable. That being said, people FUCKING HATE defaults being changed on them, so no promises.
@Poopooracoocoo commented on GitHub (Oct 20, 2021):
[Insert XKCD]
but i honestly expected that behaviour to not be behind both a preview release and an opt-in.
the very question of whether it becomes default or not makes me sad. it just makes sense to match standard window conventions :/
like i've been waiting for like two years here :'( but hopefully it'll be there in 1.12!!! ^.^
@Rosefield commented on GitHub (Oct 20, 2021):
Since you're already using 1.12 preview you can use this today. Open your settings (press
ctr+,) and then make sure the settings is enabled. Once it is enabled windows will be saved when you use thequitaction, or by pressing theXicon on the window.You can also enable the feature by adding
"firstWindowPreference": "persistedWindowLayout"to your settings.json
e.g.

@igorakkerman commented on GitHub (Oct 21, 2021):
This works for me when launching Terminal regularly. However, when I launch it as an administrator, neither does it open the last session I had as a regular user, nor does it restore the last administrator session or even the window's position and size.
@zadjii-msft commented on GitHub (Oct 21, 2021):
@igorakkerman That's unfortunately by design for now. I've got a fix that's almost ready in #11222, but that didn't make the cut for 1.12
@joel-daros commented on GitHub (Oct 27, 2021):
It need at least remember the current folder of each tab.
@zadjii-msft commented on GitHub (Oct 27, 2021):
@MrSparklle It'll do that, so long as you configure your shell to tell the Terminal about the current working directory, with
OSC9;9(#8166, etc.)@rf-0 commented on GitHub (Oct 29, 2021):
@Rosefield using preview 1.12.2931.0 it doesn't seem that the state is properly saved. Tabs names and directories are lost. The only thing it is doing is opening the same number of tabs i had previously open at the default directory of C:\Users*
@xsnowemployee commented on GitHub (Dec 15, 2021):
Even this one not working for me, I tried and reopen terminal but is not working.
@zadjii-msft commented on GitHub (Dec 15, 2021):
@rehanhashmi did you write that json by hand? That doesn't look like the actual schema we ended up going with for the state file.
Make sure to enable

"firstWindowPreference": "persistedWindowLayout"in the settings, and the Terminal will auto-generate state that looks more like:in
state.json.That's a known bug, #11878
You'll need to make sure to configure your shell to emit the CWD to the Terminal for us to be able to restore those
@xsnowemployee commented on GitHub (Dec 15, 2021):
@zadjii-msft Here is my settings.json file from windows shell, My requirement is like each time mostly I need to move to some directory and run few commands. Each time I open terminal I make few tabs and move each tab in different directory to run those commands, I want it like when I open windows shell, It automatically open 4 tabs in different file location, Please guide me what Should I do, I tried to use "state" but I guess I applied wrongly or did something wrong. it is not working,
@zadjii-msft commented on GitHub (Dec 15, 2021):
stateis not a member insettings.json. When I'm talking aboutstate.json, I'm talking about a totally different file that the Terminal uses to persist instance data. Setting the global setting"firstWindowPreference": "persistedWindowLayout"in 1.12 will cause the Terminal to automatically populate your current window state into that file, and re-use it on startup.Otherwise, what I used to do before that feature landed, was add an action like the following: (copypasta from a while back)
(you could probably make it shorter by replacing
new-tab/split-panewithnt/sp, respectively). (EDIT: You could also probably make this clearer now with themultipleActionsaction)I add that to the
keybindings/actions. This creates a new command in the Command Palette named "Good Morning". That opens up a few tabs & panes, running various build environments. I like having it in a command rather thanstartupActions, because I only really want this in one terminal window, not every single one I launch. It's personal taste.You could repeat this for multiple different "session"s if you wanted. That way you could have layouts pre-defined for various different dev environments.
@theperiscope commented on GitHub (Aug 24, 2022):
I'm using Terminal 1.14.2281.0 and would really like the window position to stay persistent but it doesn't.
I have a
Open windows from a previous session selected. With that mode, closing my last window withALT+F4,X, orCTRL-SHIFT-Wand then restarting Terminal works as expected and on restart position is restored. However, if you typeexit(Command Prompt) to close last shell, position does not get restored.@Poopooracoocoo commented on GitHub (Aug 24, 2022):
I only want the window position to be persistent just like every other app. I don't want to restore my previous session at all.
@zadjii-msft commented on GitHub (Aug 24, 2022):
Necro'ing an old thread is not typically the best place for bug reports 😉 However, we definitely do intentionally treat
exitdifferent than closing the window. If the connection itself initiated the close, then we treat that as a signal that the connection is all done, and doesn't need to come back. Closing from the UI side though does persist the terminal state. We discussed this more in one of #9800, #10972 or #11083, but I can't find the specific comment chain at the moment.@Poopooracoocoo your issue is already tracked in #12633, no need to pollute discussion here.
@simontom commented on GitHub (Oct 19, 2022):
Well, without preserving the last opened path in each tab it seems pretty useless.
I'm on v1.15.2874
After a few years, this is still no working
@Kolobamanacas commented on GitHub (Dec 5, 2022):
@Rosefield
Sorry for disturbing you in such a manner, but it's been a year and it seems like you have some idea of what's going on with the roadmap. Could you please shed some light on the implementing saving session feature plans?
By saving session I mean the Terminal's ability when launched to reopen tabs with their names, positions and (missed now) the opened paths. Currently I have lets say three projects. I open three PowerShell tabs for these projects and navigate to corresponding path for each of them. But when I reopen Terminal, each tab's path is reset to a user's home directory, which seems like not expecting behavior.
@zadjii-msft commented on GitHub (Dec 5, 2022):
You know, that's actually in the docs: Tutorial: Opening a tab or pane in the same directory in Windows Terminal. You need to set up your shell for it to cooperate with the Terminal - that doesn't work magically on Windows, unfortunately.
@Kolobamanacas This feature was implemented like, a year ago. Did you enable the following setting:

Or do you want a more generic "I want to save this set of tabs as a session, but not necessarily reopen the Terminal with that session every time"? In which case, you might be interested in #11526
@Kolobamanacas commented on GitHub (Dec 6, 2022):
zadjii-msft, thanks a lot for your reply. The funny thing is that while answering simontom's question, you have accidentally answered mine.
I personally think that most users agree, that "restore session" feature means that when one launches the application, one continues exactly where one left. Who could possibly know (
RTM), that some additional settings need to be set up in order to reach such a behavior. Here is an example:Open windows from a previous sessioninWhen Terminal startsmenu.cd ~\Desktop) and in the second tab I navigate to ~\Downloads (cd ~\Downloads).My expectations:
~\Desktopand for the second tab is~\Downloads(does not work).Current behavior is all tabs are opened in the user's home directory.
Thanks to your post and the link you've provided I'm now aware that I need to set up my shell for it to cooperate with the Terminal by appending the following line to the prompt (at least for PowerShell profiles) for it to work as I expect.
So my problem is solved. The only thing I wish to mention is that if ordinary user doesn't spend some time on intense research he would be completely unaware of the existence of such a setting. So maybe some kind of hint within the GUI could help, stating for a shell need to be set up accordingly in order to
Open windows from a previous sessionfeature to work as intended.@zadjii-msft commented on GitHub (Dec 6, 2022):
Okay, this isn't great, but I'm gonna put a link to the docs in the settings UI, right by that setting. That'll at least possibly clue someone in that there's more config needed.
@simontom commented on GitHub (Dec 12, 2022):
Well, yes :)
Restore session means restore session. Does not work as the name says. Or we all has just got used to all the stuff been saved when restarting apps ;-)
@tuanteku9x commented on GitHub (Jul 29, 2024):
I tried setting it like that, but it only restores the previous number of sessions (number of tabs). But the command content of each tab is completely gone.
@lhecker commented on GitHub (Jul 29, 2024):
@ngocbae98 This is the wrong issue. What you want is #961.
Content restoration is available in v1.21.1272.0 and later which is currently in Windows Terminal Preview. You can find the preview version in the app store or in our release page: https://github.com/microsoft/terminal/releases