Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04869656aa | ||
|
|
2f6847ce0e | ||
|
|
e5e52802de | ||
|
|
42f02f4dd2 | ||
|
|
9df3a64815 | ||
|
|
9370284c6b | ||
|
|
5598f4f435 | ||
|
|
7e02c87b91 |
@@ -40,7 +40,7 @@ Item {
|
||||
anchors.centerIn: parent
|
||||
|
||||
sourceComponent: BatteryIcon {
|
||||
devState: Battery.deviceStateString
|
||||
devState: Battery.deviceStateString.toLowerCase()
|
||||
percentage: Battery.currentPerc
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ ColumnLayout {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
color: Colors.palette.m3secondary
|
||||
font.bold: true
|
||||
font.family: Appearance.font.family.clock
|
||||
font.family: Config.appearance.font.family.clock
|
||||
font.pointSize: Math.floor(Tokens.font.size.extraLarge * 3 * root.centerScale)
|
||||
text: Time.hourStr
|
||||
}
|
||||
@@ -38,7 +38,7 @@ ColumnLayout {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
color: Colors.palette.m3primary
|
||||
font.bold: true
|
||||
font.family: Appearance.font.family.clock
|
||||
font.family: Config.appearance.font.family.clock
|
||||
font.pointSize: Math.floor(Tokens.font.size.extraLarge * 3 * root.centerScale)
|
||||
text: ":"
|
||||
}
|
||||
@@ -47,7 +47,7 @@ ColumnLayout {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
color: Colors.palette.m3secondary
|
||||
font.bold: true
|
||||
font.family: Appearance.font.family.clock
|
||||
font.family: Config.appearance.font.family.clock
|
||||
font.pointSize: Math.floor(Tokens.font.size.extraLarge * 3 * root.centerScale)
|
||||
text: Time.minuteStr
|
||||
}
|
||||
@@ -58,7 +58,7 @@ ColumnLayout {
|
||||
Layout.topMargin: -Tokens.padding.large * 2
|
||||
color: Colors.palette.m3tertiary
|
||||
font.bold: true
|
||||
font.family: Appearance.font.family.mono
|
||||
font.family: Config.appearance.font.family.mono
|
||||
font.pointSize: Math.floor(Tokens.font.size.extraLarge * root.centerScale)
|
||||
text: Time.format("dddd, d MMMM yyyy")
|
||||
}
|
||||
@@ -226,7 +226,7 @@ ColumnLayout {
|
||||
anchors.right: parent.right
|
||||
animateProp: "opacity"
|
||||
color: Colors.palette.m3onSurfaceVariant
|
||||
font.family: Appearance.font.family.mono
|
||||
font.family: Config.appearance.font.family.mono
|
||||
horizontalAlignment: Qt.AlignHCenter
|
||||
lineHeight: 1.2
|
||||
opacity: shouldBeVisible && !message.msg ? 1 : 0
|
||||
@@ -295,7 +295,7 @@ ColumnLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
color: Colors.palette.m3error
|
||||
font.family: Appearance.font.family.mono
|
||||
font.family: Config.appearance.font.family.mono
|
||||
font.pointSize: Tokens.font.size.small
|
||||
horizontalAlignment: Qt.AlignHCenter
|
||||
opacity: 0
|
||||
|
||||
@@ -41,7 +41,7 @@ Item {
|
||||
anchors.centerIn: parent
|
||||
animate: true
|
||||
color: root.pam.passwd.active ? Colors.palette.m3secondary : Colors.palette.m3outline
|
||||
font.family: Appearance.font.family.mono
|
||||
font.family: Config.appearance.font.family.mono
|
||||
font.pointSize: Tokens.font.size.normal
|
||||
opacity: root.buffer ? 0 : 1
|
||||
text: {
|
||||
|
||||
@@ -24,7 +24,7 @@ ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
color: Colors.palette.m3outline
|
||||
elide: Text.ElideRight
|
||||
font.family: Appearance.font.family.mono
|
||||
font.family: Config.appearance.font.family.mono
|
||||
font.weight: 500
|
||||
text: NotifServer.list.length > 0 ? qsTr("%1 notification%2").arg(NotifServer.list.length).arg(NotifServer.list.length === 1 ? "" : "s") : qsTr("Notifications")
|
||||
}
|
||||
@@ -66,7 +66,7 @@ ColumnLayout {
|
||||
CustomText {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
color: Colors.palette.m3outlineVariant
|
||||
font.family: Appearance.font.family.mono
|
||||
font.family: Config.appearance.font.family.mono
|
||||
font.pointSize: Tokens.font.size.large
|
||||
font.weight: 500
|
||||
text: qsTr("No Notifications")
|
||||
|
||||
@@ -130,7 +130,7 @@ Scope {
|
||||
Layout.preferredWidth: Math.min(600, contentWidth)
|
||||
font.bold: true
|
||||
font.pointSize: 16
|
||||
text: polkitAgent.flow?.message
|
||||
text: polkitAgent.flow?.message ?? ""
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ Scope {
|
||||
id: showPassCheckbox
|
||||
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
checked: polkitAgent.flow?.responseVisible
|
||||
checked: polkitAgent.flow?.responseVisible ?? false
|
||||
text: "Show Password"
|
||||
|
||||
onCheckedChanged: {
|
||||
|
||||
@@ -15,7 +15,6 @@ It includes a configurable top bar, launcher, notifications daemon + sidebar, wa
|
||||
## Highlights
|
||||
|
||||
- Multi-window shell layout driven by `Drawers/Windows.qml` and panel/interactions wrappers
|
||||
- Configurable bar entries and popouts (audio, tray, network, power, resources, clock, active window)
|
||||
- Launcher with app DB frequency tracking, action commands, fuzzy search modes, and wallpaper/scheme flows
|
||||
- Notification server with persistence (`~/.local/state/zshell/notifs.json`) and sidebar UI
|
||||
- Dynamic Material 3 palette generation from wallpaper, optional template rendering, terminal sequence application
|
||||
@@ -47,16 +46,25 @@ Core requirements:
|
||||
- Hyprland (Wayland session integration)
|
||||
- Python 3 for scheme/wallpaper tooling
|
||||
|
||||
Make sure to have the newest Quickshell version! As of writing, version `0.2.0.r136.gfb08ece-1`.
|
||||
Here's a list of package dependencies, names are from arch-packages so they
|
||||
might differ slightly depending on your distro.
|
||||
|
||||
```
|
||||
python python-pillow python-materialyoucolor libnotify cava
|
||||
app2unit wl-clipboard dconf cliphist python-typer qt6-canvaspainter
|
||||
python-build python-installer python-hatch python-hatch-vcs cmake ninja
|
||||
```
|
||||
|
||||
Make sure to have the newest Quickshell version! As of writing, version `0.3.1.r1.g0fed22a-1`.
|
||||
|
||||
Used by major features (install as needed for your setup):
|
||||
|
||||
- `app2unit` (launcher app execution)
|
||||
- `nmcli` (network integration)
|
||||
- `brightnessctl`, `ddcutil` (brightness controls)
|
||||
- `wl-copy`, `swappy` (picker/screenshot flow)
|
||||
- `libqalculate` (launcher calculator)
|
||||
- `wl-copy` (clipboard integration)
|
||||
- `PipeWire` + audio stack + `aubio`/`cava` paths for media visualization
|
||||
- `libqalculate` (launcher calculator)
|
||||
- `gsettings` (optional GTK dark/light mode sync)
|
||||
|
||||
## Build and Install
|
||||
@@ -180,7 +188,7 @@ Important state/cache files:
|
||||
- `~/.local/state/zshell/apps.sqlite`
|
||||
- `~/.cache/zshell/`
|
||||
|
||||
Config is hot-reloaded and saved through `Config/Config.qml` serializers. Top-level sections include:
|
||||
Config is hot-reloaded and saved through the `Config` singleton. Top-level sections include:
|
||||
|
||||
- `general`
|
||||
- `appearance`
|
||||
@@ -265,7 +273,6 @@ Note: Template rendering (Jinja2) applies generated colors to `~/.config/zshell/
|
||||
### `screenshot` — area picker
|
||||
|
||||
- `start` — open interactive area picker
|
||||
- `start-freeze` — freeze screen then pick
|
||||
|
||||
### `wallpaper` — wallpaper management
|
||||
|
||||
|
||||
Reference in New Issue
Block a user