germanfr/cinnamon-transparent-panels

Opacify option seems broken

Closed this issue · 18 comments

I'm using Cinnamon 3.2.

It seems, that the second setting (experimentell) makes no difference. Transparency is always removed on maximized window. No matter if switch is on or off.

Are the panels transparent or is just that they are not opaque?

What theme are you using?
Try renabling the extension (or restarting Cinnamon) with the option enabled. Sometimes it doesn't work, and it may not work with certain themes.

I'm using Mint-Y. I restarted Cinnamon. What doesn't work is turning it off.

Did restarting Cinnamon solve the issue?

What doesn't work is turning it off.

What do you mean by that?

As example.
Set transparency style to "Full Transparent"
Turn off the switch.

When I maximize the Window, the panel is no longer Transparent.

If I press on "Settings" I get the following error:

(cinnamon:21933): Cjs-WARNING **: JS ERROR: Exception in method call: highlightXlet: TypeError: obj is null
CinnamonDBus.prototype.highlightXlet@/usr/share/cinnamon/js/ui/cinnamonDBus.js:309
_handleMethodCall@resource:///org/gnome/gjs/modules/overrides/Gio.js:261
_wrapJSObject/<@resource:///org/gnome/gjs/modules/overrides/Gio.js:331

I think you didn't understand what this option really does. If your theme is semi-transparent, it turns it fully opaque when the panel is in state of no-transparent, or leaves it as is if disabled. This extension doesn't turn the panel transparent permanently, but only when no window is maximized (regardless of that option).

What are the steps to reproduce that error? Are those the same as those you described before?

I think you didn't understand what this option really does. If your theme is semi-transparent, it turns it fully opaque when the panel is in state of no-transparent, or leaves it as is if disabled.

Okay, I don't know what it does mean. Can you explain it a little bit more?

The steps to reproduce.
To see the error, type cinnamon --replace in the terminal.
Now go to Menu -> Extensions -> Settings (of your extension)

As soon as you hit Settings, the errors are appearing in the terminal.

Thank you, I'll see what I can do.

Regarding the option. It is not for leaving the panel transparent always. It's for removing the transparency of semi-transprent themes. Mint-Y is not semi-transparent (?).

But it says
"Remove transparency when maximized (experimental)"

So I thought it says, when you have a maximized Window, then remove the transparent panel and make it opaque.

So if I understand it right. If you have a theme, which has a transparent panel by default, then maximizing a Window, wouldn't change anything.

But with this setting, it would overwrite the themes default transparency and make it opaque instead?

Yes. It does exactly that "removing the transparency when maximized". If it's not enabled it doesn't remove it, it leaves it as is in the theme.

I think I should remove the "when maximized" part.

If I press on "Settings" I get the following error:

(cinnamon:21933): Cjs-WARNING **: JS ERROR: Exception in method call: highlightXlet: TypeError: obj is null
CinnamonDBus.prototype.highlightXlet@/usr/share/cinnamon/js/ui/cinnamonDBus.js:309
_handleMethodCall@resource:///org/gnome/gjs/modules/overrides/Gio.js:261
_wrapJSObject/<@resource:///org/gnome/gjs/modules/overrides/Gio.js:331

@NikoKrause I've been investigating and this comes from the cinnamon extension manager, which for some reason didn't store my extension and when highlightXlet asks for it it returns null.

I'm not sure this is my fault. Even with the simplest extension you get that error:

const Settings = imports.ui.settings;
let settings;
let sobj = {};

function enable() {
	global.log("ENABLE!!!!!!!!!!!!!!!");
}
function disable() {
	global.log("DISABLE!!!!!!!!!!!!!!");
}
function init(meta) {
	settings = new Settings.ExtensionSettings(sobj, meta.uuid);
	global.log("INIT!!!!!!!!!!!!!!!!!");
}

Full extension here: test2@germanfr.zip

Maybe there's something else I'm missing that I must provide to the extension system or something.

@NikoKrause The option will create a black overlay above the theme's semi-transparent panel when maximised, that's the easiest way to explain it

@feren what it actually does is removing the alpha component of the background-color property. Most themes don't use it (use images instead), and that's why it's black on them. No overlay :)

@germanfr Interesting then, I would've thought removing the alpha would make the colours also opaque on the panel's image

@feren unfortunately it doesn't. I have to find a way to do so.

@germanfr I meant it's better as it currently is, and otherwise, it could make the panel image look ugly if all the colours have no alpha on maximise