Both on Windows and Linux, the advanced setting "window.titleBarStyle"
does not persist. I change it to "custom"
, the window reloads with slightly glitched buttons, and the system title bar disappears as expected. But after closing and reopening the IDE, it always reverts back to "native"
.
On Windows I can ignore this, but on Linux with GNOME, the system title bar is huge and causes issues in full-screen mode, the bottom part of the program becomes inaccessible because of it. When "window.titleBarStyle"
is set to "custom"
, everything looks perfect, but the setting just wonβt stick after restarting.
Is there a way to make this setting persistent?
ledsyn
April 19, 2025, 2:32am
2
I can confirm this in Linux and KDE. The actual setting is found in /home/<user>/.arduinoIDE/settings.json
and after one run is reverted back. If I change the settings directly in the settings.json
it's ignored, and changed from 'custom' to 'native'. Write protect the file doesn't do any good either, it just stays there but isn't read in. My guess is that the IDE creates something in /tmp that is read but erased after next restart then, and settings.json is not read in but "sanitized" if it's writable.
Hi @victor8d . The setting was intentionally disabled due to the UI being partially non-functional if it was changed to "custom".
The Arduino IDE developers are tracking the task of adding full support for the setting here:
opened 01:27PM - 20 Apr 25 UTC
type: enhancement
### Describe the request
Allow the user to persistently configure the "**Window⦠: Title Bar Style**" (machine identifier `window.titleBarStyle`) advanced setting to "**custom**".
**- AND -**
Ensure the Arduino IDE UI is fully functional when this setting is set to "**custom**".
π Users will have control over the style of Arduino IDE's title bar.
### Describe the current behavior
In addition to the primary settings that are accessible via the **File > Preferences...** menu item (or **Arduino IDE > Settings...** for macOS users), Arduino IDE has some [additional settings for advanced users](https://github.com/arduino/arduino-ide/blob/main/docs/advanced-usage.md#advanced-settings).
One of those advanced settings is "**Window: Title Bar Style**" (machine identifier `window.titleBarStyle`), which is intended to allow the user to choose between the use of the operating system's native window title bar style (the "**native**" setting), and a bespoke title bar style implemented by the [**Eclipse Theia Platform** IDE framework](https://theia-ide.org/theia-platform/) (the "**custom**" setting).
The setting is locked to "**native**" by the Arduino IDE codebase:
https://github.com/arduino/arduino-ide/blob/0f9f0d07b7d5ff0cdefda3e77eb6b5ce2854c4a8/arduino-ide-extension/src/electron-main/theia/electron-main-application.ts#L456-L461
If the user attempts to change the setting to "**custom**", after the next time the user restarts the application (not including the restart that is triggered by the setting change) Arduino IDE will be in a non-functional state where the title bar is missing entirely. After one more restart, it will revert back to the "**native**" title bar style.
π Users are not able to persistently configure the title bar style according to their preference.
π During the time when the setting is temporarily set to "**custom**", the title bar is in a partially non-functional state due to the window control icons (minimize, maximize/restore, close) overlapping the "**Sketch**", "**Tools**", and "**Help**" menus, and the "**Help**" menu being positioned mostly off the right edge of the window (or if the "**Window: Menu Bar Visibility**" setting is set to "**compact**", then the icons instead overlap the Serial Plotter and Serial Monitor icons).
### Arduino IDE version
#### Original report
2.0.0.rc7-nightly-20220615
#### Last verified with
2.3.6
### Operating system
- Linux
- Windows
### Operating system version
- Ubuntu 24.04
- Windows 11
### Additional context
`window.titleBarStyle` is [intentionally disabled](https://github.com/eclipse-theia/theia/blob/baf63e71e7fdcb32c05ef42830b860d50872ca50/packages/core/src/electron-browser/window/electron-window-preferences.ts#L50) when Arduino IDE is running on a macOS machine. The reason is explained [here](https://github.com/eclipse-theia/theia/pull/10044#issuecomment-1423940577).
`window.titleBarStyle` is connected to another setting value: [`window.menuBarVisibility`](https://github.com/eclipse-theia/theia/blob/52d6e877371204045d9b047b39f3d54672387258/packages/core/src/browser/core-preferences.ts#L83). This preference is also [disabled](https://github.com/eclipse-theia/theia/blob/52d6e877371204045d9b047b39f3d54672387258/packages/core/src/browser/core-preferences.ts#L95) in Theia on macOS. Both preferences must be supported, or there is no way to show a custom title bar.
---
@kittaakos put together a preview from the latest Theia sources. Please look at how it works on resizing concerning overlay, menu, etc.:
https://user-images.githubusercontent.com/1405703/217823484-d0bb6435-b7f8-4d05-81bf-6d9beb1030b1.mp4
- On macOS, the window control buttons must be moved to the left, and custom button styles are needed to provide a native look and feel.
- Figure out if IDE2 wants to support menus on the title bar. If not, the styling issues π still be fixed on Windows and Linux.
---
Originally reported at https://github.com/arduino/arduino-ide/issues/1077
#### Additional reports
- https://github.com/arduino/arduino-ide/issues/2680
- https://forum.arduino.cc/t/window-titlebarstyle-not-working-not-persistent/1374700
#### Related
- https://github.com/arduino/arduino-ide/issues/1733
- https://github.com/arduino/arduino-ide/issues/2440
### Issue checklist
- [x] I searched for previous requests in [the issue tracker](https://github.com/arduino/arduino-ide/issues?q=)
- [x] I verified the feature was still missing when using the latest [nightly build](https://www.arduino.cc/en/software#nightly-builds)
- [x] My request contains all necessary details
If you have a GitHub account, you can subscribe to that thread to get notifications of any new developments related to this subject:
Please only comment on the GitHub issue thread if you have new technical information that will assist with the resolution. General discussion and support requests are always welcome here on the Arduino Forum.
I think the only way would be modifying the code:
but maybe one of the other forum helpers will have an idea of an easier way to accomplish this.