Double title bars on Ubuntu AppImage

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.

Yep, that’s weird. Noted it down.

(Disclaimer: I don’t work for Cursor)

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.

1 Like

Thanks for this, this shall should work for the time being, I’ll miss having the shortcuts that we get on mac and windows tho.

1 Like

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

minHeight:s.$1G.HEIGHT,frame:false,title:h.nameLong

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.

2 Likes

I tried this and it works like a charm! Thanks for this solution! @chak

1 Like