Build the Panama Hyprland desktop
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
// A freedesktop symbolic icon, recoloured to a Theme token.
|
||||
//
|
||||
// Adwaita's symbolic SVGs carry a hardcoded near-black fill (#2e3436) and Qt
|
||||
// does not do GTK's runtime recolouring, so drawn as-is they are invisible on
|
||||
// a Tokyo Night background — verified on this machine. The fix is to paint a
|
||||
// themed rectangle through the icon's alpha channel.
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Effects
|
||||
import Quickshell
|
||||
import Quickshell.Widgets
|
||||
import qs.config
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property string icon: ""
|
||||
property string iconFallback: "dialog-information-symbolic"
|
||||
property color tint: Theme.fg
|
||||
property int size: 18
|
||||
|
||||
implicitWidth: root.size
|
||||
implicitHeight: root.size
|
||||
|
||||
// Both inputs are invisible but layered, so they render into textures
|
||||
// without ever being composited onto the panel themselves.
|
||||
IconImage {
|
||||
id: glyph
|
||||
anchors.fill: parent
|
||||
asynchronous: true
|
||||
source: Quickshell.iconPath(root.icon, root.iconFallback)
|
||||
visible: false
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: fill
|
||||
anchors.fill: parent
|
||||
color: root.tint
|
||||
visible: false
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
MultiEffect {
|
||||
anchors.fill: parent
|
||||
source: fill
|
||||
maskEnabled: true
|
||||
maskSource: glyph
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user