Add option to enable/disable frameless mode

I must mention one issue with removing this on a Mac. I notice Discord also has something like this and the builtin buttons have extra options that don’t work anymore with this. The most common example is when you hover over the green button, you get an option to put window on left/right or move to another monitor/iPad. Those are functionalities many people might be used to on a Mac as they work in literally all apps except for ones like Discord. Perhaps, giving the user an option to enable/disable a frameless mode might be alright even if it was a hidden setting to change it.

13 Likes

Please, make this optional. I’m using KDE, and I lost quite a lot of control, most importantly the ability to second/third click on the maximize button (e.g. vertical maximization only, very handy on ultrawides), and useful buttons are gone such as keep-on-top and pin-to-all-desktops :frowning:

5 Likes

Add option in settings to use native system titlebar, so that Obsidian can match the look of other programs.

But it is not about the look only. At present it is not easy, if possible at all, to change titlebar hight. And changes makes other elements not to fit properly.

3 Likes

Is there a way to see if this issue is being worked on?

I filed a bug due to the app not behaving properly under native window manager because of the borderless design, but the bug was swiftly moved to the bug-graveyard (App not obeying system's window manager (KDE)).

I find it a rather poor ux design that giving back a considerable amount of control over the app window behaviour in the context of modern multi-window, -desktop and -screen environments is considered regressive and secondary to having an in-vogue themeability of the window border.

@antiphon it’s easier for us to track things if we consolidate things (e.g. in this thread). I guess it was moved to the graveyard because the request is being tracked here, and because it technically is not a bug: Frameless mode was introduced somewhere in v0.9.11? and it works as intended. Adding an option to disable it is a new feature.

I understand this might be annoying for you, but Linux is not the only distro the app is designed for, so have a little patience! For other (perhaps more popular) OSs the frameless mode works better.

The only place to track progress is mentioned in the FAQ: Is there a roadmap?
Quoting the disclaimer from Discord:

Note: it only contains the bigger projects and improvements. Smaller things and bug fixes are not on there, as an attempt to reduce clutter.

@argentum thanks for the insight. I get that this is a deep down in the todo stack, just wanted to add some datapoints for the feature request. Btw the op is using MacOS.

1 Like

I’d like to add my vote to this, too. I’m using Obsidian on MacOS, Windows and Linux and the need to introduce its own framelss design bugs me on each OS. Please add an option to disable this. Thank you!

I’d also like it to be an option to use the OS’s system window manager (KDE).

Hey guys I’m in Linux Garuda KDE Dr460nized @koala can you add a screenshot on what the issue is to understand it better


This is how it looks.


That’s how the native window manager looks. There you can also set a hotkey for app switching, you can modify which symbols to show etc.

Window manager may not be the right word — the pictures show what I mean.

Not sure if I fully understand it, perhaps I don’t have the same problem in my set-up

I do have a window manager kwin script on top of my KDE set up. I’m using krohnkite and I’m able to set up a shortcut to open Obsidian.

this is what my Obsidian looks like

this is what my browser (brave) looks like


Is the goal of this request to remove this top bar? Or did I miss understood?

The goal would have been to have these native elements grafik

It’s not that important, I wanted it for window switching. I’ve just realised that the window shortcuts aren’t persisted during restarts of apps, so this native behaviour isn’t that important.

I’ll look into krohnkite and see if that can do what I want. Thank you! :grinning:

1 Like

Awesome, I understand what you mean now

Garuda Linux kind of helps with this, my making this buttons show on the top left.

However I wasn’t able to do that when I was on Linux Manjaro with Awesome Window Manager

—.

However when it comes to shortcuts and window management. krohnkite is amazing, and it allows me to not have any issues managing Obsidian

This video is a great place to learn it

1 Like

If you are still interested, I figured out how to hack this in. If you’re on linux, you can

  1. unpack the appimage file by running with the --appimage-extract flag,
  2. then unpack the obsidian.asar file inside using “npx asar extract”,
  3. change “frame: true” in main.js inside the extracted asar directory, and finally
  4. use appimagetool to rebundle the previously extracted directory into a new appimage.

This will put the frame back. For me, I did this so that my window manager (dwm) could highlight Obsidian when I had it focused.

4 Likes

Thank you kzhang, I wouldn’t have figured it out without your comment.

In my case (ArchLinux + XMonad, installed via the obsidian AUR package) I had to change frame: false to frame: true in two places in the file for the window border to be visible and controllable by my window manager.

In case it may help someone, I’ll post my process as well.

cd /usr/lib/obsidian
sudo npx azar extract obsidian.azar obsidian.azar.extracted
sudo vim obsidian.azar.extracted/main.js # edit and save
sudo npx azar pack obsidian.azar.extracted/ obsidian.azar

and then restart Obsidian, and the border will be visible.

2 Likes

Hi, i3wm user here. I need the border to see which window is focused.
(I don’t care about the file/edit/help bar)

Thank you so much for the workaround! But yes this would be a great toggle to have! Can I vote on that feature somewhere?

I installed the aur/obsidian as well (Manjaro) but I had a different packing format. The commands below should accomplished the same thing as above. Use with caution.

sudo asar extract obsidian.asar obsidian.asar.extracted
sudo sed -i 's/frame: false/frame: true/' obsidian.asar.extracted/main.js
sudo asar pack obsidian.asar.extracted/ obsidian.asar

So to keep this up to date…I switched to the insider build because Obsidian is awesome!

I am using the AUR-Package obsidian-insider and ticked the “Insider Builds” in the settings. Now the asar file is in a different location:

asar_path=~/.config/obsidian/obsidian-0.12.13.asar
sudo asar extract "$asar_path" /tmp/obsidian.asar.extracted \
&& sudo sed -i 's/frame: false/frame: true/' /tmp/obsidian.asar.extracted/main.js \
&& sudo asar pack /tmp/obsidian.asar.extracted/ "$asar_path"

PS: I still want this tickbox to for disabling frameless mode, please :slight_smile:

I’ve tried the method here (albeit with a few changes) and it worked.
I like obsidian’s title bar better I think, because plugins can target it. Things like back/forward history (with numbers) with one of pjeby’s plugins or also his quick explorer use it and (I tested it with the first one) didn’t work/display with the native title bar but only with Obsidian’s one.

Obsidian’s title bar also looks better. It’s also not sure whether it could be easily implemented with a toggle (iirc what Licat said).

To clarify, I don’t care about the looks or functionality/buttons of the bar. I need the frame to show me that Obsidian is focused.

Without frame:


With frame (focused):

With frame (unfocused):

The bar is fine, but I need Obsidian to have a frame the system (Xorg) understands and can display. This is a system wide setting (border color, border size). Every window has it if it is in focus, browser, terminal, Discord – every window except Obsidian. This makes it impossible to reliably tell, if it is focus or not.

PS: Update on what I currently do, since Insider builds are quite frequent:

find ~/.config/obsidian/ -type f -name 'obsidian-*.asar' | xargs --no-run-if-empty -I{} sh -c 'asar extract "{}" /tmp/obsidian.asar.extracted && sed -i "s/frame: false/frame: true/" /tmp/obsidian.asar.extracted/main.js && asar pack /tmp/obsidian.asar.extracted/ "{}"'