mirror of
https://github.com/microsoft/terminal.git
synced 2026-07-08 18:16:28 +00:00
Add a key binding to set or toggle acrylic #3545
Closed
opened 2026-01-30 23:23:42 +00:00 by claunia
·
92 comments
No Branch/Tag Specified
main
dev/cazamor/patch/1.25/action-name
dev/cazamor/sui-rejuv/actions
dev/cazamor/sui-rejuv/expander-groups
user/migrie/per-window-prequel
dev/cazamor/bugfix/export-text-enter
dev/cazamor/bugfix/refresh-hyperlink-hover
dev/cazamor/sui-rejuv/profiles
dev/cazamor/selfhost/2026-06-18
dev/cazamor/sui-rejuv/profile-rejuv
dev/duhowett/onebranch-terrapin
dev/migrie/per-window-final
dev/cazamor/sui-rejuv/setting-container
dev/cazamor/toast/activity
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
release-1.24
release-1.25
feature/llm
dev/cazamor/auto-save/model/json-manager
dev/migrie/overview-for-pr
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/duhowett/fhl-2026/remove-paste-hairpin-handler
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/duhowett/win7-wpf-termcontrol-squash
dev/lhecker/20149-hotfix
dev/lhecker/osc-7-wsl
dev/lhecker/19977-kkp-altgr
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/theme-quality
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/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/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.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#3545
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 @moonunit9 on GitHub (Aug 24, 2019).
Ability to quickly toggle opacity on/off through keystrokes. It would switch between 100% and custom setting in properties.
@zadjii-msft commented on GitHub (Aug 26, 2019):
This is something that might pair well with #1142/#1349. We could make an action that quickly toggles between two opacities. The actual design of how we want the action specified might need some thinking, but #1142 will definitely be needed to enable this.
@DHowett-MSFT commented on GitHub (Aug 26, 2019):
This seems related to #830 as well.
@DHowett-MSFT commented on GitHub (Aug 26, 2019):
This workitem fits in better with our overall plan to solve all runtime acrylic/transparency shift issues.
@DHowett commented on GitHub (Jun 26, 2020):
I don't know what I was thinking when I renamed this to have nothing to do with a keybinding.
@zadjii-msft commented on GitHub (Jun 26, 2020):
Woah what kind of mind reader are you - I was just playing with the command palette this morning and I was thinking that this was something I wanted to do with it.
@Jaswir commented on GitHub (May 22, 2023):
@zadjii-msft
Is there a way to get the Windows Terminal Acrylic, but not the windows taskbar?
Or is this an all or nothing thing currently?
@zadjii-msft commented on GitHub (May 22, 2023):
@Jaswir Not that I'm aware of. TransluscentTB might be of some help, not sure though. That's a 3rd-party app I've used in the past to customize the taskbar (though, haven't tried it since Windows 11)
@Jaswir commented on GitHub (May 22, 2023):
@zadjii-msft
NOTE: BEFORE You Answer This Question, DON'T SPOIL CODE FILE NAMES OR FUNCTION NAMES Mike!!
I wanna figure it out myself, been checking out old PR's and I feel more than confident I'll figure it out.
I have questions about VS Code.


Installed the C/C++ Extensions I got recommended to install from VS Code.
I assume you have installed these extensions too. Getting rid squigglies for the Header files.

I Guess I have to change the compiler path or Include path here.

Can you tell me what include path you have? Or Compiler Path?
How did you deal with the red squigglies?
@zadjii-msft commented on GitHub (May 22, 2023):
lmao
I'm gonna be real - I ignore them. I've worked in Sublime so long that I'm pretty used to not using full IntelliSense, and I just rely on whatever completion Sublime Text uses. VsCode's seems about on par.
If you figure it out in a way that can be checked into our repo, we'd be happy to have that contribution ☺️
@Jaswir commented on GitHub (May 22, 2023):
@zadjii-msft
What do you mean ignore? You code with the red squiggles under some header files, and aren't bothered by it?
Or you disable them?
@zadjii-msft commented on GitHub (May 22, 2023):
Yea I just don't let 'em bother me 😆 The compiler is the source of truth to me, so a couple squiggles usually don't bother me.
Though again, I've been working in this codebase for quite a while. So, I kinda have a gut feel for when the squiggles are real or just the editor.
@Jaswir commented on GitHub (May 23, 2023):
@zadjii-msft @DHowett
I have a question about the libraries in this project and more c++ in general libraries. I am kinda learning c++ on the go while I tackle these issues.
I notice: "using namespace
winrt::Microsoft::Terminal::Control;"At the top of this file.
I understand that winrt is an external library.
and that by using that. You don't have to do
winrt::Microsoft::Terminal::Controlin front of somethingLike
std::coutbut when using namespace std you can docoutThe thing that confuses me is
winrt::Microsoft::Terminal::Settings::Modeland<winrt/Microsoft.Terminal.Settings.Model.h>Since there's also a project in OpenConsole with similar name:

Is
winrt::Microsoft::Terminal::Settings::Modela library from inside our Open Source Project. An expansion on the standard winrt library? Or is it something Microsoft specific that everyone can use belonging to standard winrt?Also I find it confusing to work on a project by Microsoft since many libraries are also by Microsoft, so don't know if it is from this project or external. Usually the project I work on is not from Microsoft so this is a new situation.
So I guess I am looking for some clarification.
I am familiar with self-made libraries in C# and then using them so

Would be used inside another project with
using MathLibrary;But that's without headers <winrt/Microsoft.Terminal.Settings.Model.h> Seems like a selfmade library? Expansion on standard winrt. In c++ are selfmade libraries defined as projectname + .h?
I tried using
#include <winrt/windows.foundation.h>in a testing garden (that's what I call standard newly created (cpp) projects where I just test out smaller versions of puzzles I encounter in bigger projects like this" And that works but winrt/Microsoft doesn't seem to be possible@Jaswir commented on GitHub (May 23, 2023):
@zadjii-msft @DHowett @carlos-zamora @PankajBhojwani @lhecker @ianjoneill
Yes I strive to become like that. Not getting bothered by it and would really love that.
But I have not been working in this codebase for a while. And have no gut feeling for when squiggles are real or just the editor. And am learning cpp as I go while tackling these issues. Did 1 project with cpp and Open CV at Utrecht University in the Netherlands but that's it. Mostly did C# there. I was wondering if you can point me to someone that might give me a tip or some help with it.
I'd rather not have to spend extra time figuring out the VS Code editor and instead spend it on tackling the issue. So if someone could give some advice/tips with that I would appreciate it.
I understand you folks are busy with Microsoft Build, This one can wait I work with VS for now.
@zadjii-msft commented on GitHub (May 25, 2023):
Ah yes. It is. There's some... more complicated interaction going on here, so I'm gonna try and keep this as straightforward as possible. Some of this will be an oversimplification.
Basically, large parts of the Terminal codebase uses something called C++/WinRT. This is a handy toolchain for building C++ code that interacts with WinRT APIs. Anything you see in the
winrt::namespace is a WinRT type.WinRT is special, it lets you write code in one language, expose it as a "projection" in the form of a
.idlfile, and then consume it from another language1 . So you can declare language-agnostic interfaces, classes, APIs, and just consume those APIs however you like.In the case of C++/WinRT: We've got lots of libraries that implement lots of WinRT types. Those libraries are pretty much all named something like
Microsoft.Terminal.*2 , just out of convention. When those libraries (.dll's) are built, they produce a.winmdfile, which is basically a compilation of everything in the.idlfiles for that library. When you're consuming APIs from that dll, we reference that project'swinmd, and the C++WinRT tooling automatically generates awinrt/Microsoft.Terminal.Whatever.hto include.You can then use those types by including that headed and instantiating something like
auto foo = winrt::Microsoft::Terminal::Whatever::Foo(). That'll do some internal magic to create an instance of thewinrt::Microsoft::Terminal::Whatever::implementation::Fooclass, but give it back to the caller in a way such that the caller can user it however the idl defined.It's about at this point where I'd start getting off into the weeds of "projected types" vs "implementation types", but I think that might be getting too far into the weeds.
tl;dr: Yea, the Terminal solution is composed of a bunch of different projects that each produce self-contained libraries. The
winrt/Microsoft.Terminal.Whatever.hheaders get generated from those libraries. After including that header, you can use types from that project likewinrt::Microsoft::Terminal::Whatever::SomeClass. Everything that'sMicrosoft.Terminal.*is something from inside this repo. Everything that's underwinrt::is a WinRT API / ClassPlease feel free to ask more questions if you have them. C++WinRT is a bit complicated at times - I'm still learning some of the ins-and-outs here 😄
It's certainly possible, but very complicated, and not something we do in the Terminal codebase. ↩︎
Except
TerminalApp, which can't be in a nested namespace, because of a XAML bug. ↩︎@Jaswir commented on GitHub (May 26, 2023):
@zadjii-msft
Tried setting up your setup (without teams and spotifiy, only have 2 monitors, so only left and middle one):

Would like to have a setup with VSCode and VS where I can write C++ code in VSCode without any red or blue squigglies that don't belong. And only use VS for Debugging. Ignoring the squiggles is no option for me.
But VSCode is driving me crazy with the errors. I fixed some of include errors by adding some paths:
It's like everytime I get rid of 1 red or blue squiggly another pops up >.<


Some folders aren't showing up in VS Code folders that contain the missing libraries.
terminal\packages
C:\terminal\src\cascadia\TerminalApp\Generated Files
other folders (not containing libraries):
obj
bin
Help Mike? Perhaps figure out why these folders aren't showing up in VSCode?
The way things are now I am giving up and going to just disable all squigglies and use VS and VSCode just for accessing files outside of the Solution.
@Jaswir commented on GitHub (May 26, 2023):
@zadjii-msft
Yeah I noticed there is C++, C and C# all in one codebase. Does this work out of the box since they are all Microsoft created (not sure about C) . Or does WinRT Play a part here with consuming from another language thing you mentioned?
@Jaswir commented on GitHub (May 27, 2023):
That Self Generation part is tricky about this project. Thanks for the tip.
@zadjii-msft commented on GitHub (May 28, 2023):
okay so this is just me messing around on the weekend. I can look more on Tuesday.
Clearly, I don't understand how vscode config works, cause this doesn't seem scalable:
It's like, it's ignoring all the paths that have autogenerated things, or are in our gitignore... hmmm
@Jaswir commented on GitHub (Jun 2, 2023):
@zadjii-msft
Also since you're on Paternity leave who can I ask questions in your stead? Btw congrats.
Have been looking at this problem for a while and while I do move forward as I put more time in it and learn more C++ and get a much better understanding of how the entire codebase works. Like I am starting to understand how the Generated Files are working with C++/Winrt (how changes in the idl, create some other files) and can make small adaptions in smaller new
test projects.
Honestly if you'd pointed me here: https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/intro-to-using-cpp-with-winrt That would've helped much more/faster.
But I feel like it can take me quite an amount of hours before I finish the issue this way.
What would make one a better Engineer you think? Keep going at it and get a much deeper understanding of the codebase and C++? Even though I'd get a much deeper understanding there's still a lot to the codebase I won't get from this issue I think and for an Engineer trying to fully grasp every codebase would take a lot of extra time leading to less issues solved per month. But having a much deeper understanding would help solve issues faster in the long run.
Or ask more questions and aim for better performance in terms of issues solved per month?
I watched this video: https://www.youtube.com/watch?v=UHyX9zBluMw&ab_channel=ArmanKhondker
Where at 4.11 The guy says "If I can't unblock myself in 1 hour, I reach out for help".
What is it like at Microsoft? Do engineers ask for help fast, after 1 hour being blocked?
@Jaswir commented on GitHub (Jun 2, 2023):
@DHowett
Since Mike is on Paternity leave who can I ask questions in his stead?
@Jaswir commented on GitHub (Jun 2, 2023):
@zadjii-msft
I'm getting stuck from multiple sides I think it's about time I start asking questions.
So let me tell you what I got so far, where I'm getting stuck.
I think I found a majority of the places I'll need to make changes.
What I got so far:

Figured I needed to add ToggleOpacity to the command palette.
Added
to terminal\src\cascadia\TerminalSettingsModel\Resources\en-US\Resources.resw
Was able to then substitute that with ExportBufferCommandKey Variants:

So then I tried a couple angles to tackle the problem. And when writing this, I actually got even further.
First angle:
Add _HandleToggleOpacity in AppActionHandlers.cpp
Noticed _HandleAdjustOpacity does similar functionality to HandleToggleOpacity
Tried to run _HandleAdjustOpacity when __HandleExportBuffer is run.
Figured I could bypass argument checking and just fill in the parameters.
So far I got this:

Where I got stuck
Then when actually trying to code it all neatly with _HandleToggleOpacity, ToggleOpacityArgs and Shortcut commands, things got really overwhelming.
Have been looking everywhere for a file where specific shorcuts are stored and can be adapted. Only thing I could find
C:\terminal\src\cascadia\TerminalSettingsModel\defaults.json
But on top of the file it says:

So then I spend hours looking for something better.
But then when I do make a change it IS NOT ignored??
And apparently this file is not auto-generated cause when I delete it, clean the solution and rebuild it doesn't get recreated. So??? Do I have to make those shortcut storage changes here? Or someplace else? And if so where?
Oh got this now:

Just hijacked: _HandleOpenSystemMenu this time
Will continue writing later about where I got stuck
@DHowett commented on GitHub (Jun 3, 2023):
I'd be happy to try and answer questions! Since the weekend is coming up, I can't promise that we'll answer very quickly 😄
I'm so sorry about that
defaults.jsonthing. We put that comment at the top in our source code so that when it gets put into the final application (defaults.jsoninside the MSIX file!) it says that. It's to tell users that it can't be edited... but since you're looking at the copy that lives in the source code you absolutely can edit it.Shortcuts are loaded from there by default, that's how it knows all the ones that exist.
Doing it with ToggleOpacity will require adding more handlers to "ActionArgs" and "ActionAndArgs" (silly names), which implement most of the automatic stuff that lets you write code for an action. It has been a while since I added one myself. I will have to do some research if that is not helpful enough.
@Jaswir commented on GitHub (Jun 3, 2023):
@DHowett I see, thanks for clearing things up about shortcuts.
Silly question, what is a MSIX file?
@Jaswir commented on GitHub (Jun 3, 2023):
@moonunit9 @zadjii-msft @DHowett
About the feature request:
"Ability to quickly toggle opacity on/off through keystrokes. It would switch between 100% and custom setting in properties."
Where would you like this setting to be?

in settings.json?
Like this for example:

Or here?, like this:
Or both?
@Jaswir commented on GitHub (Jun 3, 2023):
@DHowett
When will Mike be back?
@Jaswir commented on GitHub (Jun 3, 2023):
@zadjii-msft @DHowett
I suggest also adapting the comments there to make it clear the comment is aimed at users, not developers. Maybe it could save others hours of time looking for something better. I can immediately apply this while solving this issue.
// THIS IS AN AUTO-GENERATED FILE! Changes to this file will be ignored.
==>
Suggestion:
//TO USERS: THIS IS AN AUTO-GENERATED FILE! Changes to this file will be ignored.
//TO DEVELOPERS OF WINDOWS TERMINAL: YOU CAN ABSOLUTELY EDIT THIS FILE, CHANGES WILL BE APPLIED
//SHORTCUTS ARE LOADED FROM HERE BY DEFAULTS, THAT'S HOW IT KNOWS ALL THE ONES THAT EXIST
@Jaswir commented on GitHub (Jun 3, 2023):
@DHowett
terminal\doc\cascadia\profiles.schema.json
Looked at this file also for a while, thinking it might have some use for the solution.
This file, seems to have relevant information, but when I delete everything, clean and rebuild nothing breaks?
I don't understand this files purpose ... What does it do?
@Jaswir commented on GitHub (Jun 3, 2023):
@DHowett
Blocked on this problem for a couple hours now.
Trying to add ToggleOpacity inside of Command palette as a separate command and connect that to _HandleToggleOpacity in AppActionHandlers.cpp, but it doesn't appear in the command palette when I press ctrl+shift+p. I was able to get _HandleToggleOpacity in AppActionHandlers.cpp.
I added
{ ShortcutAction::ToggleOpacity, RS_(L"ToggleOpacityCommandKey") }in ActionAndArgs.cpp -> GenerateName
and ofcourse on top of file :
static constexpr std::string_view ToggleOpacityKey{ "toggleOpacity" };and
ON_ALL_ACTIONS(ToggleOpacity)To AllShortcutActions.h -> ALL_SHORTCUT_ACTIONS macro
Wondering if you could give me a tip / clue to unblock me?
I tried ctrl+shift+f in VS Code looking for OpenSystem, to see whether I missed something. But not getting much wiser from it. c++/winrt with it's .idl file magic + macro's automatically creating stuff all over the place. Can make things tricky.
@DHowett commented on GitHub (Jun 3, 2023):
Excellent questions! In order...
Oh, sorry. That's the installer for Terminal. It is a "packaged application".
It should show up in Actions, because it is an action that the user can assign to a keyboard key. That means in the JSON file it would show up in the "actions" section (either defaults.json or settings.json). It would also show up in the "actions" section in the settings UI!
In a few weeks!
Not a bad idea. However, adding a message for the developers of Terminal to that file mean that all 170 million users also need to have a copy of the message that's for developers only. We can work on making it clearer, for sure.
That is the file that tells Visual Studio Code what keys and values are "legal" when you are editing settings.json! It says "a profile can have these things inside it" and "these are the actions that are legal after the 'action' key".
Those three places - ActionAndArgs GenerateName, the key name, and
ON_ALL_ACTIONSare the right places to put it!I believe the last place you need to look is
defaults.json, in the "actions" section.It might be like these ones:
8aefc7a697/src/cascadia/TerminalSettingsModel/defaults.json (L374-L376)If you have hooked it up correctly, that is the last "piece" you need since this file tells Terminal which actions should be created by default.1
This is not my favorite part of our code, because it does mean that when you add a new action it needs to happen in approximately four separate places. ☹️ ↩︎
@Jaswir commented on GitHub (Jun 7, 2023):
@DHowett
Already had it in the file, but it wasn't working, but now it is. Ah well whatever , it works now I guess :)
Honestly I don't feel comfortable being pointed to the precise files.
I am worried about my development as an Engineer.
A big part of me helping out in this Open Source project is wanting to become a great Engineer like you. Getting pointed to the filenames conflicts with that.
Basically the give a man a fish idea: “If you give a man a fish, you feed him for a day. If you teach a man to fish, you feed him for a lifetime.” A good Engineer is able to think for themselves, find the specific files themselves right?
In real life software engineering situations more often than not, there won't be someone pointing me to the filenames right? By having you point me to them, you are effectively doing the thinking for me. And so without that I'd be lost right?
At the same time I have been kinda running in circles with this one for a while. And having some confirmation with the filenames is nice.
@Jaswir commented on GitHub (Jun 9, 2023):
@DHowett
It should also show up in settings.json. So should have an entry in schema.json.

And it should also be available in the settings.json right, like that, so you can set a value there and then make it toggle to that opacity.
PS: don't point to filenames If it needs to be stored there unless it would make me a great engineer like you maybe I am overthinking this. Do Engineers at Microsoft also get pointed to filenames???
I removed Schema.json
Cleaned project, rebuild.
But still all the properties are there to choose from in visual studio code???
I expect them to be gone, based on what you say.
@Jaswir commented on GitHub (Jun 9, 2023):
@DHowett This is what I got so far, almost done. Only need to use toggleOpacity instead of backgroundImageOpacity. That's where I am blocked now.
It's not the same without Mike. For me what makes programming work fun is adding value to the team and being appreciated for that and social communication. This energizes me. Without @zadjii-msft I think Ima take a break too after finishing this one since I am so close. Till Mike is back. Hence why I can't make projects on my own, and seek collabs like open source. Let me know when you're back @zadjii-msft
@Jaswir commented on GitHub (Jun 9, 2023):
@DHowett
Maybe a tip/hint here??
Trying to make a change to the properties by changing BackgroundImageOpacity to BackgroundImageOpacity22. Changed BackgroundImageOpacity any place I could find it in the code to BackgroundImageOpacity22, but didn't work. Get 100+ errors. I noticed some of the macro's do a lot of work under the hood that you can't really look for with ctrl+shift+f in VS-Code. It could be I missed a Macro? Or I changed all the names in all files at once and somehow something didn't get generated because of doing this?
I changed this to 22 in Appearances.idl:
OBSERVABLE_PROJECTED_APPEARANCE_SETTING(Double, BackgroundImageOpacity22);And this in Appearances.h:
OBSERVABLE_PROJECTED_SETTING(_appearance, BackgroundImageOpacity22);So I expect that backgroundimageopacity22 should have been generated as observable projected settings but appearently cause it says this:

Am I missing something?
But

@Jaswir commented on GitHub (Jul 3, 2023):
@zadjii-msft
Hi Mike, congrats on your new child. Hope you had a nice paternity leave. Your status said on paternity leave for June, and June is over. But the status is still there. I was wondering whether you're back?
And can maybe help with above mentioned blocker?
Looking forward to finish this issue. And atleast get a second issue done in an open source project this time, before giving up. Or even better, not giving up and going for more issues :D
@DHowett
You know whether Mike is back yet? Or when he'll be back?
@zadjii-msft commented on GitHub (Jul 5, 2023):
Hey, sorry for the delay. Yesterday was a holiday so it was a bit of an extra long weekend at the end of the vacation ☺️ Still trudging through a large pile of emails, but lemme see if I can't unblock you.
From just skimming this thread, it looks like you've got the action set up to plumb into the
TermControl/ControlCorelayer. That's great! I think you might be a bit off track with theOBSERVABLE_PROJECTED_SETTINGbit. Try looking at this instead:94e6b91c78/src/cascadia/TerminalControl/ControlCore.h (L234-L235)Those two are special - they're control properties that could be changable at runtime1 . There's already an action for setting Opacity at runtime2 . We were prepared though, and knew we wanted to do a similar thing with acrylic, so we pre-emptively made that a
RUNTIME_SETTINGso it could also be changed in a similar way. I'd start there.We absofuckinglutely do, all the time. Dustin linked me a file path literally this morning. It's 1000x better to ask for help and quickly get pointed in the right direction, then spin your wheels for a couple days. There's literally no shame in admitting you don't know something, and asking for help.
I believe added in #11619 ↩︎
added in #12092 ↩︎
@Jaswir commented on GitHub (Jul 6, 2023):
@zadjii-msft
Wait I am confused now. Thought the assignment of this issue was to make a toggle for opacity besides #12092 as mentioned by @moonunit9 .
The ones in #12092 are specific to 0,25,50,75. But no in-between. This one would switch to a custom value between 0 and 100 , like 58. Hence I was looking for a way to add a toggleOpacity property to the settings, besides BackgroundImageOpacity.
But the title of the issue is key binding to set or toggle acrylic. And from what you're saying, the goal is to make it toggle acrylic on and off instead? You want me to make something like this?
One sec, I'm working on a gif.
@Jaswir commented on GitHub (Jul 6, 2023):
@zadjii-msft
Here is something I could get working in code.
Is this the idea? Toggling Acrylic?
If so, I don't know why
_runtimeUseAcrylic = !_runtimeUseAcrylicdoesn't work. Right now I only can do_runtimeUseAcrylic = trueor_runtimeUseAcrylic = false, which does work.Why doesn't
_runtimeUseAcrylic = !_runtimeUseAcrylicwork?@zadjii-msft commented on GitHub (Jul 12, 2023):
Oh, huh. Good observation. Seems like over the course of the history of this work item, we retitled it a bunch of times. That caused us to actually entirely lose the meaning of the original request... huh. Well now that's on us for being confusing.
I personally don't really feel great about a "Toggle opacity" action. My main concern is what opacity does it toggle to (from opaque)? Like, do we need to always just pick and opacity that the action goes to? That feels weird. Say we pick 30% as our arbitrary bound. Then a user could toggle from 50% -> 100% (off) -> 30%, which is probably not what they expected.
We could maybe do the action as "Toggle opacity, opacity:{}" and leave
opacityas an argument. So something like:when you do that action, it'll either:
But then, that precipitates the question of should this be a parameter to
adjustOpacity- like,idk. I honestly just think the existing "Set opacity" actions cover the original scenario well enough...
I still think there's value in a
toggleAcrylicaction, which is really what I wanted from this thread (and was expecting from the title). What you've got in the above gif looks like basically what I was thinking of ☺️Ah, that's because
_runtimeUseAcrylicis technically, secretly, astd::optional<bool>. So it starts asnullopt, and presumablyoptional::operator!(nullopt) -> nullopt.@Jaswir commented on GitHub (Jul 15, 2023):
@zadjii-msft
This is what I got now:

@Jaswir commented on GitHub (Jul 15, 2023):
@zadjii-msft
But it's kinda buggy, look what happens when I change opacity with mouse wheel:

It's going out of Acrylic. Not sure why ScrollWheel Bug is happening. My guess is that because it's runtime Acrylic instead of the saved one in settings.json.
@Jaswir commented on GitHub (Jul 15, 2023):
@zadjii-msft
Yeah it's this line :
// Manually turn off acrylic if they turn off transparency._runtimeUseAcrylic = newOpacity < 1.0 && _settings->UseAcrylic();From
ControlCore::_setOpacityWhen:
The acrylic get's set to off everytime you change opacity with scrollwheel
runtime acrylic is set to off everytime opacity is changed when "useAcrylic": false in the settings.json
With the addition of Toggle Acrylic this makes no sense anymore hence It seems right to change it to
_runtimeUseAcrylic = newOpacity < 1.0;Uhm I meant:
@Jaswir commented on GitHub (Jul 15, 2023):
Only thing I do still wonder about.
Currently I use this:
Inside ToggleAcrylic in ControlCore.cpp , I am thinking of making a new ChangedEventArgs for Acrylic , since I use an arbitrary value of 0.0 to get this working. Then again, intuitively I feel better about using existing code if it can be reused. Instead of adding new code.
@Jaswir commented on GitHub (Jul 15, 2023):
Anyway there's a PR
@Jaswir commented on GitHub (Jul 24, 2023):
@zadjii-msft
As for the next issue.
This one seems like fun to me : https://github.com/microsoft/terminal/issues/11092
And you said this one first: 7158
So I guess this adventure pretty much. Assuming AbdullahAlmanei isn't working on it.
I thought doing this issue would be a good prep. And have been eyeballing those for a while to be honest.
But I would feel uncomfortable talking in the chat of 7158 cause lots of people. I was wondering if I can also email you or contact you somewhere more private, that would feel more comfortable. Do you respond similar to your email as in the chat here? Like here you respond quite fast. I saw your email somewhere, but can't find it anymore. What was it again? I guess mikegriese@microsoft.com ?
Btw I like to do issues that lots of people appreciate. In the past there was a period of my life where I made innovative web games. And mostly implemented the things most people asked for as they added most value. Here is something I made: https://www.kongregate.com/games/FeatherHatGames/toughgrowth?
ref=blog.kongregate.com
Or this when the other one doesn't work (haven't updated it with the webbrowser updates, but I think they update stuff themselves here to make it work)
https://armorgames.com/tough-growth-game/18348
However doing stuff like that with a team is new for me.
@Jaswir commented on GitHub (Jul 24, 2023):
@zadjii-msft
I started a bit on it and this is what I got.

@Jaswir commented on GitHub (Jul 25, 2023):
@zadjii-msft
As in waiting for a more optimal comfortable place to talk with you. I guess I talk here for now..
Trying to get a clearer picture of what to make. Have a question.
Add something here? No right? That is done in a seperate Xaml file or no?
I looked for the tooltip text in the project and changed

doc\cascadia\profiles.schema.jsonAs well as the text in this line X(bool, ShowMarks, "experimental.enableUnfocusedAcrylic.showMarksOnScrollbar", false)
in
MTSMSettings.hTrying to make something happen in the settings file, but nothing happens.@zadjii-msft commented on GitHub (Jul 25, 2023):
Hey sorry, lots of stuff to catch up on and I'm still quite distracted at the moment. Trying to get through a couple notes:
That's totally reasonable - that's one of the most trafficked open issues at this point. Though, I'd probably stick to GitHub - my mail filters are notoriously aggressive and unreliable. Plus, I'm just better at keeping up to date on here anyways.
Er, probably not in the
profiles.defaultsin the json itself. A hard-coded default is probably fine. I think those are in eitherMTSMSettings.horTerminalSettings.horControlProperties.h... one of those. Might be all of them 😝I'd probably suggest... GlobalAppearance.xaml? since this would be a global appearance-related setting?
I actually think we may want to skip the XAML on this one for now. We've been having some discussions about compatibility settings, global settings, stuff like this, and it might be _more- confusing to have you do something here. We can always add it in post when we decide where to put it.
Oh jeez editing the schema is always a pain. You need to change
at the top of your
settings.jsonfile to point at theprofiles.schema.jsonon disk that you're making changes to, then reload VSCode. But I always forget the precise syntax for that and I'm away from the PC that has the right one. Somethingfile://path-to-schemabut again, I forget it exactly.@Jaswir commented on GitHub (Jul 28, 2023):
It's
file:///, thanks for the tip :)@zadjii-msft
When would it suit you to review 2531?
@Jaswir commented on GitHub (Jul 28, 2023):
Not in profiles I get that. I have it in the Globals now, so it works like this:

I don't know what you mean with hard-coded default. What I understand the boolean value is set globally in settings.json like in the gif. The code part (MTSMSettings.h or TerminalSettings.h or ControlProperties.h) then connects to that and from there I can connect it to TermControl to either use in-app-acrylic or not.
For now it can be hard coded inside settings.json. But no representative yet in Xaml, so nothing will appear here:

As of yet.
Is that what you mean with hard-coded? (not appearing in the Xaml, but only in global settings)
Making sure I am implementing the right thing.
Still have to connect the code to the settings.json though, but this is what I got now.
@Jaswir commented on GitHub (Jul 28, 2023):
Hmm, would expect that there would be some kind of list outside of settings.json that checks whether jsonKey's entered at
MTSMSettings.hare valid. The valid properties would be stores in this list, or maybe double check with the profiles.schema.json either on disk or here: https://aka.ms/terminal-profiles-schema".And this check thing might be called controlproperties at it controls whether properties exist.
@Jaswir commented on GitHub (Jul 28, 2023):
@zadjii-msft
Hey Mike!

Look what I got! Did some plumbing and this is what I got so far:
However I am kinda confused, probably missing something.

I don't know what moving the acrylic from
CONTROL_SETTINGStoCONTROL_APPEARANCE_SETTINGSis for. And also yeah moving it in profile settings.What is it for?
Also this one:

I don't get, what global setting are you talking about? Is CONTROL_APPEARANCE_SETTINGS Global variant of CONTROL SETTINGS? Are you talking about using the enableUnfocusedAcryl there? I currently added
_EnableUnfocusedAcrylic = globalSettings.EnableUnfocusedAcrylic();to _ApplyGlobalSettings with the other global settings@zadjii-msft commented on GitHub (Aug 1, 2023):
Sorry for any confusion! This is probably a side-effect of #11092 and #7158 evolving organically in parallel, instead of me consolidating everything into one thread.
Ah, that is ultimately the crux of the feature here! The
TermControlcan have different sets of "appearance" settings, based on if the control is focused or not. Acrylic was never a part of the "appearance" settings before, because it couldn't be applied when unfocused. Now it can! So it should get moved there. I think opacity looks like it is, at least in IControlAppearance.I think these docs might make more sense.
So basically, there's one new setting, and one moved setting:
useAcrylic, which is moved to being a control/profile per-appearance settingenableUnfocusedAcrylicwhich toggles if we should even enable the unfocused acrylic. That'll basically just get&&-ed inTerminalSettings::_ApplyAppearanceSettingswith the unfocused appearance'suseAcrylic, so that ifenableUnfocusedAcrylicis disabled, we don't use the new behavior.@Jaswir commented on GitHub (Aug 4, 2023):
@zadjii-msft
Ah I think I get it, in order to use acrylic in unfocused appearance settings , useAcrylic needs to be moved to CONTROL_APPEARANCE_SETTINGS.
That's what you mean right?
Also last time I checked Opacity was also missing from Unfocused Appearance,
see: https://github.com/microsoft/terminal/issues/11092#issuecomment-1557024462
Btw how do you want me to deliver these PR's to you? Since there are 2 issues 7158 and 11092
I figure 11092 is basically about https://github.com/microsoft/terminal/issues/11092#issuecomment-1557024462
enabling opacity as both an appearance setting, allowing it to be set differently in both focused and unfocused terminals.
And 7158 global useAcrylic, and allowing it to be set differently in both focused and unfocused terminals?
Or 7158 could be just the global useAcrylic boolean. And 11092 about , allowing Acrylic and Opacity be set differently in both focused and unfocused terminals. At least that's how I interpreted 11092.
@Jaswir commented on GitHub (Aug 5, 2023):
@zadjii-msft
I don't know where the RetroTerminalEffect is changed when the terminal becomes unfocused or focused help.
I looked at ProfileViewModel, but breakpoints couldn't be triggered there or something?
And ControlCore.cpp -> ColorScheme breakpoint doesn't get hit which I expected it would activate when focus changed
TermControl::_LostFocusHandler is the closest thing I found
I've set up UseAcrylic2 with ControlAppearances.idl, CONTROL_APPEARANCE_SETTINGS and ControlCore and basically got that part of the application working with

UseAcrylic2, I demolished ControlCore., ControlProps, ControlSettings.Idl, TerminalSettings.h that part out which useUseAcrylicand that part seems to be working now of the App with the UseAcrylic2 pipes in plumbing terms (UseAcrylic2 is connected to "useAcrylic" json key) . Only have to get the ProfileViewModel Part working which I believe is basically this:part I think.
and that'll be the plumbing done I think
When demolishing ProfileViewModel things I bump to some issues that I am working on. I'll ask question if I get stuck.
@zadjii-msft commented on GitHub (Aug 7, 2023):
Alrighty so a lot of points here, I'll surely miss something:
TermControl::UpdateAppearance(which calls through to_ApplyUISettings). Ultimately, the most interesting one isTermControl::_InitializeBackgroundBrush, which sets up the background brush (which is what we care about here)._core.Opacity, to retrieve the runtimeOpacityvalue. Now, that's implemented in the core as being_settings->Opacity()for this value".c6e5f79115/src/cascadia/TerminalControl/ControlSettings.h (L56-L76)That means that when we call
_settings->Opacity(), we're always returning the focused appearance's value!Okay this might not be an easy starter issue at all. Now we've got this awkward interaction between the runtime changing of opacity, and whether or not the focused or unfocused appearance is applied.
RUNTIME_SETTINGdoesn't really work with that idea so well.We probably need to also make changes so that:
Or maybe it could be changed to
and then choose the right value accordingly in
TermControl::_InitializeBackgroundBrush.@Jaswir commented on GitHub (Aug 7, 2023):
@zadjii-msft
Just wanted to mention before I go to sleep late, that the plumbing is going well! have to make some switches and it should be good.
@Jaswir commented on GitHub (Aug 8, 2023):
@zadjii-msft
I like a challenge 😁
@Jaswir commented on GitHub (Aug 10, 2023):
@zadjii-msft
I think I might be missing something in the plumbing.
So I am switching UseAcrylic2 that is configured to work as ControlAppearance to UseAcrylic. And there's 1 file that I am adding something manually to, which makes it work, but I am not sure this is how it's supposed to be done.
Maybe I am missing some .idl here. I got
IControlAppearance.idlandIAppearanceConfig.idlThe file in question is
ControlSettings.hI am talking about manually adding this piece of code to:
CONTROL_APPEARANCE_SETTINGS(APPEARANCE_GEN)Is it supposed to be added in manually like this or am I missing something? I am coding quite a lot on my intuition.
I'd suspect that the
CONTROL_APPEARANCE_SETTINGS(X)insideControlProperties.hwould impact ControlSettings.h somehow since the Macro says:CONTROL_APPEARANCE_SETTINGS(APPEARANCE_GEN)
and
So it would automatically add it inside ControlSettings.h, once added to the macro in ControlProperties.h . But when I remove it from ControlSeting.h, clean and rebuild it doesn't reappear in ControlSettings.h
@zadjii-msft commented on GitHub (Aug 10, 2023):
FWIW I don't think you need to touch
ControlSettings.h. That file is full of macros that automatically build up theControlSettingsclass at compile time based on the contents ofControlProperties.h. Just sticking the property intoCONTROL_APPEARANCE_SETTINGSandIControlAppearance.idlshould be enough for it to populate into the_focusedAppearance/_unfocusedAppearanceobjects@Jaswir commented on GitHub (Aug 10, 2023):
I don't know why it isn't working, help. When you add something new to
CONTROL_APPEARANCE_SETTINGSinControlProperties.handIControlAppearance.idl, does something automatically appear in the ControlSettings.h for you?It doesn't for me.
@zadjii-msft commented on GitHub (Aug 10, 2023):
Nope. That file is all just C macros. Nothing about that file changes, but when the compiler actually evaluates that file, it's gonna macro expand everything in there, combined with the macros in
ControlProperties.h, to generate definitions for everything automatically.It's a pretty heavy use of X macros, which are some crazy C concept that I only learned about a few years ago. It's great for boilerplate code like this.
@Jaswir commented on GitHub (Aug 10, 2023):
@zadjii-msft
Got the plumbing done and working now AFAIK! Ofcourse, you'll only see it working when I apply
THATfunctionality and send a gif of that :DNot sure what the difference is between Macro's and XMacros but ,
I think Macros are pretty cool, have only seen it in c++ so far, which surprises me its really awesome for lazy people like me.
I think I solved the Controlsettings.h issue, I had to manually rewrite the macro as CONTROL_APPEARANCE_SETTINGS(APPEARANCE_GEN)
and then it worked probably at some point I opened it (expanded inline to see what is inside it) edited something and then saved and commited that and forgot and the compiler thing wouldn't happen anymore.
@Jaswir commented on GitHub (Aug 10, 2023):
_Initialize only get's called upon initialization, but we want to fire some function everytime the focus state is changed.

See gif, everytime I click on the folder and back to terminal:
And update the acrylic and opacity everytime it's changed. I thought if I find the place where RetroTerminalEffect gets updated I can just add that code for acrylic and opacity to that location. But couldn't find it.
Is that somewhere deep inside
_UpdateAppearanceFromUIThread?Feel confident about implementing the other thing you mentioned with
After plumbing ControlCore
I guess I can get just get the code working at some inappropriate place for now
@Jaswir commented on GitHub (Aug 10, 2023):
I checked it. And the
TermControl::UpdateAppearancegets fired continuously it seems, but it doesn't call through to _ApplyUISettings@Jaswir commented on GitHub (Aug 10, 2023):
The
Toggle Acrylicfunction from 2531 would probably be useful here aswell@Jaswir commented on GitHub (Aug 10, 2023):
Played around a bit:
Acrylic unfocused more transparent:
Opacity unfocused more transparent (my current favorite)

Cool stuff (you know this one might become my favorite actually)

D: Why the hell not. Fully transparent when focused, "fully transparent acrylic" when unfocused.

@zadjii-msft I could post this in the future in 7158 and then include A,B,C,D that would complement your permutation comment nicely could be a good teamwork move. Let me know, what do you think about that?
The code is really ugly though ;)
@Jaswir commented on GitHub (Aug 21, 2023):
@zadjii-msft
Questions:
I could post some gifs fitting your A,B,C,D example that would complement your permutation comment nicely could be a good teamwork move. Let me know, what do you think about that?
So what's the idea about the PR's for 7158 and 11092? I am getting close to PR's it's big and complicated, splitting it up makes things easier for me and for you as well.
I understand 11092 will be:

Just Opacity right?
And then 7158 about enabling Acrylic as both an appearance setting (with all the plumbing), allowing it to be set differently in both focused and unfocused terminals plus the EnableUnfocusedAcrylic Global Setting right?
@zadjii-msft commented on GitHub (Aug 23, 2023):
and I was today years old when I realized that OOF is not the abbreviation of "Out Of Office". I've literally never thought of it for the last 8 years I've been here. ↩︎
@Jaswir commented on GitHub (Sep 2, 2023):
@zadjii-msft
Questions:
I heard somewhere good Engineers spend more time on submitting code for review resulting in less iterations of reviewing and improving the code.
https://www.youtube.com/watch?v=ZaZj7XJMJv0
Could you provide me feedback please if you think this added value to my PR in your opinion? Would like to improve become a Great Engineer. Thanks in advance.
It doesn't seem to default to 50 to me?
@Jaswir commented on GitHub (Sep 7, 2023):
@zadjii-msft
I notice that
acrylic.BackgroundSource(Media::AcrylicBackgroundSource::Backdrop);is different fromacrylic.BackgroundSource(Media::AcrylicBackgroundSource::HostBackdrop);Not sure if it's a problem, seems to be the default behaviour of Backdrop, there's a see through at the edge where it's somewhat transparent instead of acrylic.

and it seems a nit bit less bright, can you spot it? Both are at

0Opacity btw@zadjii-msft commented on GitHub (Sep 7, 2023):
Oh, I'm sure that's fine. In-app acrylic (
Backdrop) was never really meant to be used with a transparent window background. That's a happy side effect of us being able to drop out our window background (which most UWPs can't). We're firmly in unexplored territory of the app platform 😄@Jaswir commented on GitHub (Sep 7, 2023):
@zadjii-msft I don't know how I can check whether the command palette is open? Help
I want to
_setOpacity(newAppearance->Opacity());inControlCore::ApplyAppearanceso the opacity changes according to unfocused opacity and focused opacity.But as you can see below the windows becomes unfocused when opening the command palette and focused when closing it so then the adjust opacity's
_setOpacitygets overridden by the one inControlCore::ApplyAppearance@zadjii-msft commented on GitHub (Sep 7, 2023):
Hmm that's got shades of #11571 in it, though we went through a pretty major settings re-write after that... Don't think I'll have time to dig in this week before I leave, and I'll be ignoring mail all week next week.
I'd say file a follow-up that we can get to now that we're merging #15923
@Jaswir commented on GitHub (Sep 8, 2023):
@zadjii-msft
Hey Mike, I've been contributing here for a while now.
How do you think I am doing?
Do you maybe have general feedback, anything I can improve on?
Let me know when you're back.
@Jaswir commented on GitHub (Sep 13, 2023):
@ianjoneill
Awesome that you completed this: https://github.com/microsoft/terminal/pull/14999
I remember you helping me out here when I just started: https://github.com/microsoft/terminal/issues/15127
Thanks again!
Carrying on your legacy now xD

Hope you're well.
@Jaswir commented on GitHub (Sep 16, 2023):
@DHowett @DHowett-MSFT
What does Mike mean with this? Is he suggesting to make a PR for 11092 for the team to look at?
@Jaswir commented on GitHub (Sep 21, 2023):
@zadjii-msft
Hey Mike,
How was your Hackathon week? Hope it was nice.
I was wondering if you got a chance yet to answer my question:
I've been contributing here for a while now.
How do you think I am doing?
Do you maybe have general feedback, anything I can improve on?
@Jaswir commented on GitHub (Sep 21, 2023):
@zadjii-msft
I'll just come up straight with it.
I am looking for a referral for Microsoft.
Can you give me a referral?
Solving 7158 boosted my confidence to start seriously applying to Big Tech Jobs. Can you give me a referral? I rather have a referral from you then someone that doesn’t know me.
Has there been other contributors that you’ve given referrals for Microsoft Applications? What are you guys like? Do you give referrals to contributors?
@Jaswir commented on GitHub (Oct 5, 2023):
@zadjii-msft
Hi Mike,
How are you?
Haven't heard from you in a while.
I am worried.
I hope you'll respond.
Thanks,
Have a good weekend!
@Jaswir commented on GitHub (Oct 14, 2023):
@zadjii-msft
Hey Mike,
Some Questions.
There are a couple problems I find interesting to work towards:
https://github.com/microsoft/terminal/issues/3158
Can you point me to some like easy issue to get familiar with CWD, manipulating it and stuff?
https://github.com/microsoft/terminal/issues/2664
https://github.com/microsoft/terminal/issues/190
I have a feeling that both of these have to do with DX engine and Atlas Engine (since they are both kinda fonts)
Is that right?
https://github.com/microsoft/terminal/issues/2664
Can you point me to some easy issues to get familiar with DX Engine, Atlas Engine?
Ugh, I tagged the issues again ...
@zadjii-msft commented on GitHub (Oct 16, 2023):
First off, lemme level with you: Those are truly some of the gnarliest issues on our repo. There's a reason they're still open despite the number of upvotes on them.
profile.commandline,profile.source... maybe others) into theTermControl, or theConptyConnection, or maybe elsewhere.relativeRoottoTermControl. I dunno.Meh, don't worry about it. Folks don't get emails when threads are linked, so no one usually notices or cares.
@Jaswir commented on GitHub (Oct 23, 2023):
@zadjii-msft
I am considering the next steps in my career, I am looking into startups (at my current job I do Web Dev).
I could either go in the direction of AI / C++ or Mobile Development or both? But the jobs I've been looking at seem to be either AI/C++ or Embedded System/C++ sometimes combined with Javascript for Web Dev of the company or Only Mobile Dev with React Native but no C++.
I am worried to go in the direction of C++/AI. It seems to me like a small fraction of jobs involve C++ development. Most involve mobile development since the market for it is bigger, around 80% of internet traffic is from Mobile. That being said right now we have entered the Era of AI and so maybe the future market is AI and C++?
I want experience that allows to apply to a wide range of jobs and don't want to get stuck in a box where I can't transition easily anymore. I've been in that before with Game Dev where I pretty much dug my own grave well at least the more I did it the more I felt like I couldn't get out of it anymore since I knew so much about it.
I don't know if that makes sense. If I do Mobile Dev with e.g. react native it seems like there will be tons of companies to go to so I can be flexible and don't have to worry about getting stuck at a company since there are so many other companies I could go to if things don't work out or something.
As someone that has been doing C++ development for the past 8 years of their live.
How valuable is C++ development in the long run? It seems to me it's mostly build for programming machines, so embedded systems and with AI for programming the GPU with Cuda or Compiler engineering, to increase AI performance. Which to me seems like a small fraction of the job market. Maybe in the future it will boom with AI though.
Do you feel like you are kinda stuck in terms of jobs? Like you dug your own grave? Like can't translate easily to other companies because you don't have xp with web or mobile development. For example one thing I always wondered about like this is like desktop development, but some people build backend with C++. I don't know if you've done web development before with c++? But do you think your C++ knowledge would be valuable to a company that uses C++ primarily for backend development?
From my perspective I can't see that, since I am not that good at C++ when applying before I'd apply to C# jobs for backend with desktop development experience in C# only. And I couldn't see it either what the value was of that for backend C# cause I wasn't that good at C#. But I think you might see it?
Also do you think in the future C++ will take a bigger share of the market cause of AI and become the new Mobile Dev hype? So like majority of jobs will ask for C++?
Also what do you think knowledge of C++ is worth? How valuable do you think it is?
@zadjii-msft commented on GitHub (Oct 23, 2023):
Alright I probably don't have enough time to share everything I'd like to, but I'll try to add some quick notes:
Honestly, C# probably strikes good balance place - widespread enough that there are tons of careers. Close enough to Java/whatever's going on at Apple these days that moving to those would be easy. TS is pretty similar too, so again, not the most painful move. And of course, transitioning down to C++ wouldn't be the end of the world from C++.
that's a lie, JS is an abomination. TS is nice though ↩︎
@Jaswir commented on GitHub (Oct 27, 2023):
@zadjii-msft
Made a sideproject you might like, that being said I kinda assume you know every cmd command and powershell command by head now, well at least the ones that are most used and rarely lookup commands anymore. Maybe it's more for different audience. Anyway thought I'd share it with you as well.
Made an AI Powershell Plugin - Which-Command GPT. Reduce time looking for commands, increase performance at work. Which command to use in Terminal for Windows? - Which-Command GPT - AI PowerShell Plugin - Answers that for you.
Features:
👉 Answers which command to use
👉 Copy and paste the command directly in your terminal
Try it out yourself: https://jaswirraghoe.blogspot.com/2023/10/which-command-gpt.html
@Jaswir commented on GitHub (Oct 30, 2023):
@zadjii-msft
There's nothing I like writing less than C++
Wait I understand you don't like writing C++ and would much rather write something else?
Do you feel like you are kinda stuck ? Like you dug your own grave? Like can't translate easily to other companies / roles, like you have to do C++/Rust now forever?
@Jaswir commented on GitHub (Oct 30, 2023):
@zadjii-msft
What function tells me whether the command palette is currently open?

When the palette is open window becomes unfocused. It shouldn't

@zadjii-msft commented on GitHub (Oct 30, 2023):
Absolutely. Working in C++ is just a pain compared to literally any modern programming language. Compiler messages are terrible, tooling is terrible, stl is bizarre at times, package management is nonexistent. Just a dumpster fire. Fast though, lots of examples, and used ubiquitously in the OS.
Not even remotely. I'm confident that I'm a good engineer with solid fundamentals, good communication skills1 , and fairly good at reasoning about complicated dependencies. All that'll translate to any other project or language.
TerminalPage::_commandPaletteIs(Visibility::Visible)should do the trickfor an engineer ↩︎
@Jaswir commented on GitHub (Oct 30, 2023):
@zadjii-msft
Nvm don't need to do that, there's a much easier hack that'll do the trick
You're such a Microsoft Employee xD!
Are you allowed to use a different browser than Microsoft Edge?
@Jaswir commented on GitHub (Nov 19, 2023):
@zadjii-msft
Am very much into AI these days, hence my absence.
Thought I'd let you know. Hope you're well.
@Jaswir commented on GitHub (Nov 25, 2023):
@zadjii-msft
Are there AI Opensource project at Microsoft you recommend?
@zadjii-msft commented on GitHub (Dec 6, 2023):
Honestly, not a lot that I intimately know of. I've been pretty checked out of the LLM work for the last couple months. Terminal Chat is an LLM-backed feature, but that's more of a frontend application built on top of existing models. It's not really about building or training models itself.
@carlos-zamora commented on GitHub (Sep 4, 2024):
I'm gonna go ahead and close this. We have these commands in the command palette:

That's already exposed with the
adjustOpacityaction.