mirror of
https://github.com/microsoft/terminal.git
synced 2026-02-03 21:25:34 +00:00
Changing Ubuntu WSL starting directory keeps it set to the defualt #3855
Closed
opened 2026-01-30 23:31:40 +00:00 by claunia
·
78 comments
No Branch/Tag Specified
main
dev/cazamor/bugfix/window-root-memory-leak
dev/lhecker/11509-kitty-keyboard-protocol-wip
automated/loc-update
feature/llm
dev/pabhoj/actions_editor_visual
dev/cazamor/selfhost/2026-01-29
dev/lhecker/11509-kitty-keyboard-protocol
dev/cazamor/sui/search
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#3855
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 @AlikanakelaKarwowski on GitHub (Sep 13, 2019).
Originally assigned to: @bitcrazed on GitHub.
When editing the the settings, I have tried to chang the default starting directory for the Ubuntu WSL Terminal profile as follows
"startingDirectory": "/mnt/D/Folder/SubFolder/",and while it doesnt cause any issues or causes the Terminal to resort to default configuration, it does not set the default starting directory to the specified path.
Also it seems that most settings for the profile do literally nothing when changing them, from color, to acrylic or scheme settings.
Note: changing the setting for power shell, cmd, of Kali-Linux does work and change things respectively
@zadjii-msft commented on GitHub (Sep 13, 2019):
startingDirectoryShould be a windows path, not a *nix path. TryD:\Folder\SubFolderinstead.Could you be specific which settings don't seem to work for that profile? Maybe share the profile from the
profiles.jsonfile?@bitcrazed commented on GitHub (Sep 13, 2019):
@zadjii-msft Just checked into this & verified that, yes, specifying a Windows path does work, and for WSL distros, specifying a Windows-relative path to a distro also works.
For example,
\\\\wsl$\Ubuntu\home\\rich\\opens my Ubuntu home folder! 😁@DHowett-MSFT commented on GitHub (Sep 14, 2019):
This is a duplicate of another bug in the db somewhere. We need to clarify in the documentation that
startingDirectoryis a Windows path, and since Terminal doesn't actually know anything about the connected application on the other end we can't assume that it's WSL and do path translation and all that stuff.It's gotta be a Windows path. 😄
I'm re-tagging this with
Issue-Docs@MEXdave1997 commented on GitHub (Sep 19, 2019):
I am working on submitting a PR to add that bit of detail, if that is alright with everyone.
@DHowett-MSFT commented on GitHub (Sep 19, 2019):
Sure!
@contento commented on GitHub (Nov 6, 2019):
You may want to use
wsl -lfirst, in order to determine which Ubuntu version you are running.For example:
"startingDirectory": "\\\\wsl$\\Ubuntu-18.04\\home\\[linux-user]"@jgroom33 commented on GitHub (Feb 9, 2020):
non-escaped also works:
@Boobies commented on GitHub (Feb 27, 2020):
The problem isn't the documentation, it's the default JSON provided. That's why everyone keeps complaining about the same thing. Here's mine:
which instead takes me to
/mnt/c/Users/<windowsuser>. So it looks like that string is entirely ignored and a default that has nothing to do with it is picked. It's not even the same username.@MEXdave1997 commented on GitHub (Feb 27, 2020):
@Boobies weirdly enough, I've used
"startingDirectory": "\\\\wsl$\\Ubuntu\\home\\[linux username]"in my config for a while now with no issue. Could there be any other setting that might be conflicting with it?@amykapernick commented on GitHub (Feb 27, 2020):
I've tried all of these and it still seems to be defaulting to
c/Users/{user}as well. Any suggestions?@kybrdbnd commented on GitHub (Mar 1, 2020):
start by using this ->
//wsl$/Ubuntu/and then recursively find the directory where you want to go.If you wanna change drives like go to D:/ its not picking up, moreover you can change to your starting directory whose write access is done by root. Check the folder permission also by using
ls -lif its root it can be your startingDirectory else not possible right now@tnguyen14 commented on GitHub (Mar 30, 2020):
@bitcrazed
I did this, and it works for me, but now I get this message every time I create a new window
It still cd to the right directory though. Is this error message expected? Any way I can fix it?
@zadjii-msft commented on GitHub (Mar 30, 2020):
@tnguyen14 what
commandlineare you using to launchwsl?@tnguyen14 commented on GitHub (Mar 30, 2020):
@zadjii-msft The Windows Terminal app - is that what you meant?
@zadjii-msft commented on GitHub (Mar 30, 2020):
I meant the
commandlinein yourprofiles.jsonfile - could you share that with me?@tnguyen14 commented on GitHub (Mar 30, 2020):
It's not specified. Here's the profile object:
@zadjii-msft commented on GitHub (Mar 30, 2020):
Okay, well that's exactly what I'd expect that to look like. I'm not sure why that error message is getting displayed, but you might be able to get answers over at https://github.com/microsoft/WSL
@DHowett-MSFT commented on GitHub (Mar 30, 2020):
This is because
wslu, the WSL integration bridge that ships with Ubuntu, is runningcmd.exeon startup. There's nothing we can do about that. This will happen any time WSL is started outside of the Windows filesystem.@DHowett-MSFT commented on GitHub (Mar 30, 2020):
More info here: https://github.com/microsoft/terminal/issues/4214
@tnguyen14 commented on GitHub (Mar 30, 2020):
@DHowett-MSFT Interesting. I don't see if from windows when I use other terminal apps, like wsltty or the default Pengwin app - is that launched differently somehow?
@DHowett-MSFT commented on GitHub (Mar 30, 2020):
Depends. What do you get when you run
pwdimmediately after launching it in those other applications?@tnguyen14 commented on GitHub (Mar 30, 2020):
the regular linux
/home/myuserpath.I know for the wsltty app, the "Target" property of the launcher is set to this value:
@tnguyen14 commented on GitHub (Mar 31, 2020):
@DHowett-MSFT do you know if that same behavior can be replicated?
@wmertens commented on GitHub (Apr 2, 2020):
@DHowett-MSFT you said
But that doesn't make sense because Terminal knows to start WSL with the correct container purely based on the UUID (I presume?), there is nothing else in the entry that says which WSL container to open, and I can actually change the name and the path. Here's my Ubuntu install, I can say it's Alpine and it will still load Ubuntu with the correct path, but I can't say
//wsl/$/Whateverso it needs to be the name of an existing install:@mbursill commented on GitHub (Apr 20, 2020):
I edited
.bashrcand addedcd ~to the end. Good enough for my needs.@trialuser commented on GitHub (Apr 25, 2020):
sometimes it makes your work uncomfortable, because
cd ~will be executed each time when you run .bashrc (e.g. withsudo usernameor justbash). For example, when you are in some specific directory switch between different shells - you will be moved to the home directory once you run bash :|@krlinus commented on GitHub (Apr 26, 2020):
Instead of ~/.bashrc it can be put in /etc/bashrc or /etc/bash.bashrc (whichever is present) if it is sourced less often
@frencojobs commented on GitHub (May 3, 2020):
In my case, this causes problems with installed packages exported in
.bashrcusing$HOME. For example, I exported flutter in my.bashrclike,and if I added,
cd ~to the file, the flutter command won't work.@thelazyanalyst commented on GitHub (May 24, 2020):
This fixed my issue. Thank you.
@udithaMee commented on GitHub (Jul 3, 2020):
For Ubuntu 20.04 WSL2 In the terminal settings JSON file add "startingDirectory": "//wsl$/Ubuntu-20.04/home/Your Ubuntu Username"
{
"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
"hidden": false,
"name": "Ubuntu-20.04",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "//wsl$/Ubuntu-20.04/home/Your Ubuntu Username"
}
@dgp1130 commented on GitHub (Jul 15, 2020):
Just to point out a mistake I made that I haven't seen posted here, I renamed my distro from
Ubuntu-20.04toUbuntu. So I presumed the path would also be justUbuntu. I tried:But this did not work. Instead I still needed to include the version number:
The second "directory" in the path is apparently not the name of your distro. I'm not entirely sure where it comes from, but it seems I still had the default value from the install.
@rkdfx commented on GitHub (Jul 15, 2020):
Yes, this worked. I've included version name and now it's working fine.
@DHowett commented on GitHub (Jul 15, 2020):
Oh gosh, that’s a really big gotcha. Thanks for pointing that out.
Yeah, the distro name is the system’s name for it; whichever one comes out of
wsl.exe -l@amaria commented on GitHub (Jul 20, 2020):
Also, if you have mapped a network drive to \wsl$ use the drive name/letter. Otherwise none of these suggestions will work.
@kvietmeier commented on GitHub (Jul 20, 2020):
I have tried all of those and still getting Windows home directory.
{ //WSL "guid": "{69b4a9a7-42eb-457e-b4eb-9c6bef28aa4d}", "hidden": false, "name": "Ubuntu", "source": "Windows.Terminal.Wsl", "colorScheme" : "One Half Dark", "startingDirectory": "//wsl$/Ubuntu/home/karlv" },WSL 2.0 with Ubuntu 20.04 installed from the Windows Store. Could it be the GUID?
karlv@MININT-J0FCRPR:/mnt/c/Users/kavietme$@DHowett commented on GitHub (Jul 20, 2020):
I'm guessing that if you run
wsl -l, your distribution isn't namedUbuntuorUbuntu-20.04?@cuttleman commented on GitHub (Jul 22, 2020):
"startingDirectory": "\\\\wsl$\\Ubuntu\\home\\<username>"It's working on my WSL2 Ubuntu 20.04 LTS
@jcgoble3 commented on GitHub (Jul 22, 2020):
"startingDirectory": "//wsl$/Ubuntu/home/<username>",is what worked for me (Ubuntu 20.04). This was driving me crazy because I open and close the terminal frequently, but with WSL 2 on Windows 20H2 beta, merely loading the prompt in a mounted Windows filesystem takes over a minute, but I work exclusively in the Linux filesystem, so I was constantly having to wait for the prompt to load just so I couldcdto my Linux home directory.@Slingx commented on GitHub (Aug 14, 2020):
this worked!!!! tysm. Mine was ubuntu 18.04 btw
@herbert256 commented on GitHub (Sep 11, 2020):
late to the party, I did below once and after that all feature sessions are started in the linux home directory instead of the windows home directory
echo "cd ~" >> ~/.profile
@mcandre commented on GitHub (Oct 23, 2020):
Some blogs provide incorrect instructions, such as adding an Ubuntu version prefix. Combined with Windows Terminal silently failing in the event that such a path is invalid.
@ad-on-is commented on GitHub (Nov 1, 2020):
If you're using the new
--mountoption and have symlinked your user-directory to that mount, you need something like this:"startingDirectory" : "//wsl$/<distro>/mnt/wsl/PHYSICALDRIVE<x>p<x>/<folder>"@thehaystacker commented on GitHub (Nov 16, 2020):
You have to set this in the profile list object
@arsaccol commented on GitHub (Jan 15, 2021):
This worked for me. If I may ask, what kind of syntax is that for the path? With the "wsl" and dollar sign starting it. Is there some name for it? It reminds me of how URIs start with a protocol such as
<protocol>://address.somethingand so on@jcgoble3 commented on GitHub (Jan 15, 2021):
The path beginning with
//is how Windows indicates a reference to another system, with the first path element being the name of that system. The system can be a network server, LAN share, or in this case, WSL. The dollar sign isn't special in the syntax, but just happens to be how the WSL system is named for the path purposes (probably done to prevent collisions with any existing systems that might be namedwsl.@bitcrazed commented on GitHub (Jan 15, 2021):
@lalilulelost The path you're referring to is a fully qualified UNC (Universal Naming Convention) path. More info here: https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
@kmgrime commented on GitHub (Jan 22, 2021):
I think some of the issues people are having is confusing windows username with linux username which you see in the linuxuser@ubuntu:/mnt/c/Users/windowsUserName$ - in order to get the startingDirectory to work you have to use your distros username and not the windows one.
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\home\\linuxUser",@fschuetz04 commented on GitHub (Mar 4, 2021):
To get the full correct path, simply open a WSL session, go to your future starting directory (e.g.
cd ~), and typewslpath -w .to translate the current WSL path to a Windows one. To put it in the configuration, each\has to be escaped with another\or be replaced with a/.Example output of
wslpath -w .:\\wsl$\Ubuntu-20.04\home\bobIn the configuration file:
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\home\\bob"Or:
"startingDirectory": "//wsl$/Ubuntu-20.04/home/bob"@visma-henriklarsen commented on GitHub (Mar 27, 2021):
In my case I had to use forward slashes in StartingDirectory, like:
"startingDirectory": "D://projects"
@mrzlanx532 commented on GitHub (Mar 28, 2021):
If the methods above don't work (like for me), do this:
Add to the end
.bashrcfile:cd ~.From Windows environment:
wslcd ~ && echo 'cd ~' >> .bashrc@ednl commented on GitHub (Jul 2, 2021):
Reading every message here FINALLY gave me the hint https://github.com/microsoft/terminal/issues/2743#issuecomment-593103843 why it wasn't working for me: the home directory needs to have read/execute access for group/others. Strange, because the root user should have access anyway, right?
I always do
chmod -R go-rwx ~and that bit me here. It is now fixed afterchmod go+rx ~and WSL starts up in my Linux home directory again.Another gotcha for the docs, @DHowett ?
Edit: NOPE. It seemed to have been fixed when I tried closing and reopening Windows Terminal, but when running Terminal at system boot or after a long delay between closing and reopening, it STILL starts up in /mnt/c/Users/ instead of ~. In Settings it does still say, and always has: //wsl$/Ubuntu-20.04/home/
Edit2: I found a comment https://github.com/microsoft/terminal/issues/592#issuecomment-629223710 that says the "//wsl$/ folder is not initialized until a wsl instance is started. So the first instance wont start in ~, but the others will start in ~ because the first instance initialized the //wsl$/ folder". So there is no way to always (even the first time) start up a WSL instance in the Linux home directory??
@SGarcia710 commented on GitHub (Jul 23, 2021):
This one worked for me, just editing the JSON file
@ajfpay commented on GitHub (Aug 6, 2021):
Yeah this work
@riolly commented on GitHub (Oct 19, 2021):
The newer windows terminal provides a UI for setting starting directory for each profile.
Using
startingDirectoryis not working anymore. (I'm not sure starting from which version).Just go to setting > Profiles > Ubuntu-xx.xx > Starting directory.
You can paste the path there or just click browse and go to the directory you want.
Hope it help.
@riolly commented on GitHub (Oct 19, 2021):
In my case, this is the starting directory.
\\wsl.localhost\Ubuntu-20.04\home\alberto@pedershk commented on GitHub (Oct 22, 2021):
Same - and I presume it changed to the
\\wsl.localhostformat with WSL2?@DHowett commented on GitHub (Oct 22, 2021):
These are the same setting.
You may be seeing the issue described in https://github.com/microsoft/terminal/issues/11512#issuecomment-943722724 where the timing makes it seem as though whatever you did fixed something.
@gabriel8fm commented on GitHub (Oct 25, 2021):
@MEXdave1997 your settings worked perfectly for me, thanks!
@dazrik commented on GitHub (Nov 23, 2021):
Adding
cdin.bashrcseems to work.@yorkshire-pudding commented on GitHub (Dec 9, 2021):
worked for me too
@jetersen commented on GitHub (Dec 31, 2021):
Today after reinstalling Ubuntu 20.04
on Windows 10 21H2 (Build 19044.1415)
I had to use
Which is GREAT 👏
@ray-x commented on GitHub (Jan 4, 2022):
__
Thanks!
Same here, if set to
//wsl$/Ubuntu/home/<user>I will start from root folder@riker09 commented on GitHub (Jan 21, 2022):
I have Windows 10 Version 20H2 - Build 19042.1415 and had to use
/home/<user>where<user>needed to be replaced with the actual user name. All other solutions provided above did not work for me. I have only Ubuntu installed inside WSL.@zadjii-msft commented on GitHub (Jan 21, 2022):
Okay lemme clear this up before there's more confusion. This ISN'T something that came with a Windows update, this is a Terminal change in 1.12.
In 1.12, you should be able to use
/home/<user>as thestartingDirectory, and the Terminal should automatically promote that to the correct path. Unfortunately, that came at a cost - there's a bug in 1.12 where//wsl$/Ubuntu/home/<user>paths will be treated as/. That's fixed in #12102. (\\wsl$\Ubuntu\home\<user>with backslashes should still work)@wolf99 commented on GitHub (Feb 2, 2022):
My work laptop just updated from 1909 to 20H2 (upgrades are controlled by policy, thus the reason for not being on a newer version or having updated sooner).
Previously the following had worked just fine to start WT in
~:"startingDirectory" : "/wsl$/Ubuntu/home/emoltob"After the upgrade WT started in
/, I assume it was then ignoring this setting as somehow invalid.Changing to the following solved this:
"startingDirectory" : "\\\\wsl$\\Ubuntu\\home\\emoltob"Yes, these two seem basically equivalent. Yet the latter works while the former is apparently now ignored.
@zadjii-msft commented on GitHub (Feb 2, 2022):
@wolf99 what you're seeing is exactly what I've described in https://github.com/microsoft/terminal/issues/2743#issuecomment-1018540758
@wolf99 commented on GitHub (Feb 2, 2022):
Mmm I'm not on 1.12 yet though as I do not use the pre release versions. I am still on 1.11. Are you saying this change was also present in 1.11 ?
@zadjii-msft commented on GitHub (Feb 2, 2022):
Yea, looks like we serviced #9223 to 1.11.2421 as well.
@morph2k commented on GitHub (Feb 3, 2022):
I worked my way through this whole thread and it took me a while to realize that Windows Terminal has been updated. I added the line to the Json file and it only half worked, changing the starting directory from my Windows user folder to root.
Going into the settings under Ubuntu and setting the Starting directory option to \wsl$\Ubuntu\home\username\ works but not when using /
@AnimeshRy commented on GitHub (Feb 8, 2022):
This worked finally!
@mcandre commented on GitHub (Feb 21, 2022):
Something recently changed and now WSL starts with a WSL root working directory instead of the correct WSL HOME working directory.
@barcellos-pedro commented on GitHub (Mar 9, 2022):
That worked for me! Thanks! 💖
@mbowolick commented on GitHub (Mar 13, 2022):
A lot of the paths here didn't work for me.
\\wsl$\Ubuntu\home\<user>worked for me where<user>is the name of your Linux user.@cjens00 commented on GitHub (Apr 23, 2022):
Thank you. This is what I was looking for (works well enough).
@kwint commented on GitHub (Nov 25, 2022):
I still can't get this to work as expected. I want the default folder to be
~/code. So my starting dir is set to:\\wsl$\Ubuntu-22.04\home\kwint\codebut this just opens the home folder and not the code folder.Afaik I don't have any cd ~ in my .bashrc or equivalent
Edit: always after you asked for help on the internet you find the solution yourself. For some reason my default wsl profile would use the executable
ubuntu2204.exe. I changed thisC:\Windows\system32\wsl.exe -d Ubuntu-22.04and now the starting directory works as expected@Easy-Cloud-in commented on GitHub (May 17, 2023):
This is what I did in windows 10 latest terminal settings - PowerShell 7.3.4
It worked like a charm both on right click menu and direct from terminal.
@Nick-Hope commented on GitHub (Dec 26, 2023):
//wsl$/Ubuntu/home/<user>worked for me but I also had to change my Command line in the settings fromubuntu.exetowsl.exe -d Ubuntu.@kevgilmore commented on GitHub (Jan 9, 2024):
this gave me error
Nor do any of the above strings works