如何在 cinnamon 中自定义 osd 窗口?

如何在 cinnamon 中自定义 osd 窗口?

我正在使用我正在为 Linux Mint 开发的自定义主题中的 cinnamon.css 文件来自定义桌面的外观,并且我在文件中遇到了 osdWindow 类,并且能够更改背景颜色,音量和亮度osd通知的边框半径等。

但我想知道如何自定义它的外观,例如,我希望 osd 窗口在音量更改时仍然弹出,但我希望能够从弹出窗口中删除图标,或更改其布局。我查看了 osdWindow.js 文件,我相信这就是执行此操作的地方,但我不知道如何执行。

谁能帮我解决这个问题吗?

答案1

我想到了!

诀窍是打开osdWindows.js文件并找到以下几行:

this._icon = new St.Icon();  
this.actor.add(this.icon, { expand: true });

并注释掉第二行。然后我发现,虽然这确实删除了图标,但它不会调整 osd 窗口的大小,因此我在函数中找到了以下几行_monitorsChanged,并编辑了以下几行:

this.actor.set_size(this._popupSize, this._popupSize);  
this.actor.translation_y = (monitor.height + monitor.y) - (this._popupSize + (50 * scaleFactor));  
this.actor.translation_x = ((monitor.width / 2) + monitor.x) - (this._popupSize / 2);  

并将它们编辑为:

let popupWidth = 200;  
let popupHeight = 50;   
this.actor.set_size(popupWidth,popupHeight);     
this.actor.translation_y = monitor.height-3*popupHeight;  
this.actor.translation_x = ((monitor.width / 2)-(popupWidth / 2));

这调整了 osd 窗口的大小,并执行了一些重新定位,因为我稍微改变了布局。

相关内容