Change:
Version of VS Code: 1.72.2 Your operating system: macOS 10.15.7 List of extensions that you have installed: none Reproducible steps (1... 2... 3...) that cause the issue: Set the OS language to Hebrew or Arabic. Then open VSCode What you expected to see, versus what you actually saw I expect to see the layout control buttons in the left side when the window is RTL, because in the right side there are the close/minimize/resize OS buttons. Instead they are in the right side and the are basically impossible to click because they are covered with the window buttons. See image: <img width="86" alt="problem occuring" src="https://user-"
Confirmed on macOS Monterey with the titlebar style set to "custom" and the system language set to Arabic.
Related:
Verification steps: macOS, switch the most preferred system language to a right-to-left language such as Arabic. VS Code Insiders, set the titlebar style to custom in the settings, reloading the program if prompted. traffic lights should still be on the left side.
verified this, but isn't it expected that the traffic lights and WCO actually switch so that traffic lights are on the right and the WCO is on the left when using a RTL language?
Reopening this issue because the current fix is even less usable, i.e.
and I looked into other programs on macOS, and it seems that all non-Electron-based programs have the traffic lights on the right side when the system language is Arabic. An invalid assumption I had was that because Windows set the location of the window controls overlay (WCO) depending on the application language, that macOS would do something similar. Instead, we should just move over the layout controls, as was originally asked. Not a duplicate of
Verification Steps: macOS, set your OS language to an RTL language such as Arabic. the machine VS Code, traffic controls should be on the right side controls in the custom title bar should show to the left of the controls

Discussion:
import { IThemeService } from 'vs/platform/theme/common/themeService'; import { ThemeIcon } from 'vs/base/common/themables'; import { TITLE_BAR_ACTIVE_BACKGROUND, TITLE_BAR_ACTIVE_FOREGROUND, TITLE_BAR_INACTIVE_FOREGROUND, TITLE_BAR_INACTIVE_BACKGROUND, TITLE_BAR_BORDER, WORKBENCH_BACKGROUND } from 'vs/workbench/common/theme'; <del> import { isMacintosh, isWindows, isLinux, isWeb, isNative } from 'vs/base/common/platform'; </del> <ins> import { isMacintosh, isWindows, isLinux, isWeb, isNative, locale } from 'vs/base/common/platform'; </ins> import { Color } from 'vs/base/common/color'; import { EventType, EventHelper, Dimension, isAncestor, append, $, addDisposableListener, prepend, reset } from 'vs/base/browser/dom'; import { CustomMenubarControl } from 'vs/workbench/browser/parts/titlebar/menubarControl';

}); } <del> this.primaryWindowControls = append(isMacintosh ? this.leftContent : this.rightContent, $('div.window-controls-container.primary')); append(isMacintosh ? this.rightContent : this.leftContent, $('div.window-controls-container.secondary')); </del> <ins> let primaryControlLocation = isMacintosh ? 'left' : 'right'; if (isMacintosh && isNative && locale) { // Check if the locale is RTL, macOS will move traffic lights in RTL locales // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/textInfo const localeInfo = new Intl.Locale(locale) as any; if (localeInfo?.textInfo?.direction === 'rtl') { primaryControlLocation = 'right'; } } this.primaryWindowControls = append(primaryControlLocation === 'left' ? this.leftContent : this.rightContent, $('div.window-controls-container.primary')); append(primaryControlLocation === 'left' ? this.rightContent : this.leftContent, $('div.window-controls-container.secondary')); </ins> // Context menu on title [EventType.CONTEXT_MENU, EventType.MOUSE_DOWN].forEach(event => {