Hi guys, love cursor and have moved over from VSCode a while ago. Been following you guys since the app was in beta and the code was publicly available on Github!
I’m using Cursor on Ubuntu and I see 2 title bars as shown in the screenshot below. Its not a bug or anything ground breaking, but seeing the options to maximize, minimize and close the application window twice is kinda off putting especially when we compare it to the application style available on Windows and Mac.
Can we get this fixed on Ubuntu? I tried to find a solution on web myself, but didn’t really come across anything useful.
It looks like the double-header-bar debate has been raging for a number of years and isn’t specific to VS Code/Cursor. If you want some light reading on the subject, try adding something like ‘gtk3 client side decorations’ to your web search. If you’re just after a solution though:
File > Preferences > Settings (or Ctrl+comma)
Search for titleBar
Change the drop-down from ‘custom’ to ‘native’
This means you’ll just get the native titlebar, so you’ll lose the extra shortcuts (layout control, command center). But if you’re more interested in getting the screen real estate back, this should do the trick. Tested on Ubuntu 23 using appimage converted to deb and installed.
I was having the same issue with gnome on Fedora. Two title bars. Of course, the suggested solution for reverting to native title bar worked for me, I kinda liked the custom titlebar from the vscodium that I am using on the side.
Since I know that it’s electron app, there has to be just a single parameter change either in some JSON or JS file. So I extracted the AppImage file.
./cursor.AppImage --appimage-extract
Entered into the squashfs-root directory that was generated after extraction and searched a few files. To make things simpler for you, I went to the /resources/app/out/vs/code/electron-main/main.js file and searched for title:h.nameLong. Right before it, I added this property, frame: false. This is how it should look like after that
Save it and with that, the AppRun shell file should load the frameless window. Now in order to make the new AppImage out of these extracted files, just install the appimagetool and run the following command.
./appimagetool-x86_64.AppImage squashfs-root/
And that should generate the new cursor.AppImage file.
And there you go! Worked for me, hope it works for others too.
I’m not from cursor dev team and I’m not taking any responsibility if the AppImage breaks. This info is shared just for the “curious cats” to try things out.
i have tried this but the only ref to what you saying is title:h.getTitle() ive put the frame:false,title:h.getTitle() before it , re built the image but is still the same
I would like an option to remove those three for me useless buttons
This means you’ll just get the native titlebar, so you’ll lose the extra shortcuts (layout control, command center).
and not be forced to use a workaround which worsens UX.
Few weeks back I wrote a “feedback” post, pretty sure I mentioned those buttons there as well, among many other things I encountered. I don’t think anybody responded, not even lazy short “we will look into it” (I mean not just this issue). Some annoyances I managed to fix in settings or workaround with extensions since then, but it is not a great impression. It creates an image like the company doesn’t care about new people coming from other IDEs. And looking at this thread, half a year passed and nothing happens…
Still works. Here’s a script I run each time I update Cursor:
#!/bin/bash
# Step 1: Extract the AppImage
./Cursor.AppImage --appimage-extract
# Step 2: Define the path to the target file
TARGET_FILE="squashfs-root/resources/app/out/vs/code/electron-main/main.js"
# Step 3: Replace all occurrences of ",minHeight" with ",frame:false,minHeight"
sed -i 's/,minHeight/,frame:false,minHeight/g' "$TARGET_FILE"
# Step 4: Repackage the AppImage using appimagetool
./appimagetool-x86_64.AppImage squashfs-root/
Great. This did the trick. Thanks. I was also looking for this. But I like it to keep the appimage extracted, so I did not repack again. I think the program starts faster when launching from the extracted AppRun file instead of appimage file.
i tried the solutions but unfortunately they didn’t work. can someone confirm these still work in the latest versions or if there are any other solutions? wish cursor team would fix it on their side instead of relying hacks. vscode doesn’t have this issue
An alternative that (half) worked me under Ubuntu 24.04 was this Gnome Shell extension: Undecorate Window - GNOME Shell Extensions - right click the title bar and select “Undecorate” to remove the native title bar. Needs to be done per-window each time, and the File/Edit/etc menu is still duplicated, but good enough for me until it’s properly fixed.
Interestingly, in my personal machine, this works properly without any changes (no double title bars), even each time I download and extract the appimage.
But in my office message, each time I download it, I have to modify this file.
(I have to download it because update doesn’t work.)