muffinmad / emacs-mini-frame

Show minibuffer in child frame on read-from-minibuffer
GNU General Public License v3.0
321 stars 20 forks source link

Cannot set mini-frame to transparent #65

Closed andreyyao closed 2 years ago

andreyyao commented 2 years ago

Emacs version: GNU Emacs 28.1 OS: 5.16.18-1-MANJARO Desktop: KDE Plasma 5.24.6

Thanks for writing this package. I have been perpetually annoyed by my modeline jumping around when mini buffer resizes. It's not an issue anymore thanks to mini-frame.

However, I cannot set the transparency of the mini-frame when it is child frame through the alpha frame parameter. But as a standalone frame, it does show up as transparent. My compositor is KDE's kwin, and transparency definitely works in general.

Value of mini-frame-show-parameters

'((left . 0.5)
  (top . 0.0)
  (width . 1.0)
  (height . 1)
  (alpha . 50))

No standalone (child frame): Screenshot_20220803_152645

Standalone (transparency working): Screenshot_20220803_153217

muffinmad commented 2 years ago

Hi,

I'm glad you find this package usefull.

Child frame transparency works as expected for me on macOS.

Tested this snippet under Gnome Shell:

(make-frame `((parent-frame . ,(selected-frame))
              (width . 0.5)
              (height . 0.5)
              (alpha . 50)))

And newly created child frame is not transparent.

Maybe it is specific to OS.

andreyyao commented 2 years ago

Thanks for the reply. I think I phrased the question poorly, but the expected behavior for me was for the child frame to be transparent. Do you know if this is possible?

muffinmad commented 2 years ago

The point is the same code for creating transparent child frame works different on different platforms. It works as expected on NS port and does not work on GTK port. I'm affraid there nothing we can do about it on mini-frame side and this issue must be solved in Emacs itself.

andreyyao commented 2 years ago

I see. I will just tweak other options to make the mini-frame look nice. Thanks!