hyprland: add basic quickshell bar config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-05-26 10:11:09 +01:00
parent 5ac532d46f
commit 69a72e9406

View file

@ -560,6 +560,106 @@ in
'';
};
xdg.configFile."quickshell/shell.qml" = lib.mkIf isGaming {
text = ''
import Quickshell
import Quickshell.Hyprland
import Quickshell.Services.SystemTray
import QtQuick
import QtQuick.Layouts
ShellRoot {
Variants {
model: Quickshell.screens
PanelWindow {
required property var modelData
screen: modelData
anchors {
top: true
left: true
right: true
}
implicitHeight: 32
color: "#${c.base00}"
RowLayout {
anchors.fill: parent
spacing: 0
// Workspaces
RowLayout {
spacing: 0
Layout.leftMargin: 6
Repeater {
model: Hyprland.workspaces
Rectangle {
required property var modelData
Layout.preferredWidth: 32
Layout.preferredHeight: 32
color: modelData.focused ? "#${c.base02}" : "transparent"
radius: 6
Text {
anchors.centerIn: parent
text: modelData.name
color: modelData.focused ? "#${c.base05}" : "#${c.base03}"
font.family: "FiraMono Nerd Font"
font.pixelSize: 13
font.weight: modelData.focused ? Font.Bold : Font.Normal
}
MouseArea {
anchors.fill: parent
onClicked: modelData.activate()
}
}
}
}
// Spacer
Item { Layout.fillWidth: true }
// System tray
RowLayout {
spacing: 4
Layout.rightMargin: 8
Repeater {
model: SystemTray.items
Image {
required property var modelData
source: modelData.icon
Layout.preferredWidth: 18
Layout.preferredHeight: 18
smooth: true
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: (event) => {
if (event.button === Qt.RightButton && parent.modelData.hasMenu) {
parent.modelData.menu.open();
} else {
parent.modelData.activate();
}
}
}
}
}
}
}
}
}
}
'';
};
};
};
}