Compare commits

...

5 Commits

Author SHA1 Message Date
1f42ca1eae test 2026-04-09 18:44:20 -05:00
e7de1ccb63 test 2026-04-09 16:59:12 -05:00
18403d3ddf test 2026-04-09 14:31:19 -05:00
be1318c3cb works 2026-04-09 11:19:36 -05:00
f4b032e96f works 2026-04-09 11:16:48 -05:00
25 changed files with 389 additions and 222 deletions

View File

@@ -26,9 +26,64 @@
}; };
aurora-greeter-hypr-conf = pkgs.writeText "greeter-conf" '' aurora-greeter-hypr-conf = pkgs.writeText "greeter-conf" ''
exec-once=${self.packages.${system}.aurora-greeter}/bin/aurora-greeter exec-once=${self'.packages.aurora-set-wallpaper}/bin/aurora-set-wallpaper; ${self'.packages.aurora-greeter}/bin/aurora-greeter; hyprctl dispatch exit
exec-shutdown = rm ~/.config/wal/colorschemes/dark/wallpaper*
''; '';
aurora-change-colors = (pkgs.writeShellScriptBin "aurora-change-colors" ''
img=''$(realpath "''$1")
alpha=''${2:-80}
if [[ ''$alpha -lt 0 ]]; then
alpha=0
elif [[ ''$alpha -gt 100 ]]; then
alpha=100
fi
if [[ -f ~/.config/wal/colorschemes/dark/''$(basename "''$img")-''$alpha.json ]]; then
${pkgs.pywal16}/bin/wal -n -f "''$(basename "''$img")-''$alpha"
else
${pkgs.pywal16}/bin/wal -n -i "''$img" -a "''$alpha" --cols16 -p "''$(basename "''$img")-''$alpha"
fi
'');
aurora-set-wallpaper = (pkgs.writeShellScriptBin "aurora-set-wallpaper" ''
if [[ ! -d /tmp/aurora/wallpaper ]]; then
mkdir -p /tmp/aurora/wallpaper
fi
src=''$(realpath "''${1:-$(find /tmp/aurora/wallpaper/*)}")
n=''$(basename "''$src")
ext="''${n''\#''\#*.}"
out=''${3:-/dev/null}
if [[ ! -z $1 ]]; then
rm -rf /tmp/aurora/wallpaper/*
cp ''$src /tmp/aurora/wallpaper/wallpaper.$ext
chmod 666 /tmp/aurora/wallpaper/wallpaper.$ext
fi
img="/tmp/aurora/wallpaper/wallpaper.$ext"
if [[ ''$ext == "gif" || ''$ext == "mp4" ]]; then
yes | ${pkgs.ffmpeg}/bin/ffmpeg -i "''$img" -vframes 1 /tmp/aurora/tmp.jpg >> ''$out
pidof mpvpaper >> $out && pkill mpvpaper
${pkgs.swww}/bin/swww img /tmp/aurora/tmp.jpg -t wipe >> ''$out
sleep 0.6
hyprctl dispatch exec "${pkgs.mpvpaper}/bin/mpvpaper ALL ''$img -o loop" >> ''$out
else
yes | ${pkgs.ffmpeg}/bin/ffmpeg -i "''$img" /tmp/aurora/tmp.jpg >> ''$out
pidof mpvpaper >> $out && pkill mpvpaper
hyprctl dispatch exec "${pkgs.swww}/bin/swww img ''$img -t wipe" >> ''$out
fi
${self'.packages.aurora-change-colors}/bin/aurora-change-colors "''$src" "''$2" >> ''$out
'');
}; };
}; };
@@ -44,9 +99,27 @@
system = pkgs.stdenv.hostPlatform.system; system = pkgs.stdenv.hostPlatform.system;
in { in {
environment.systemPackages = [ users.users.aurora = {
self.packages.${system}.aurora-greeter
]; createHome = true;
home = "/tmp/aurora/home";
packages = with pkgs; [
self.packages.${system}.aurora-greeter
self.packages.${system}.aurora-set-wallpaper
swww
mpvpaper
ffmpeg
];
isNormalUser = true;
group = "aurora";
};
users.groups.aurora = {};
services.greetd = { services.greetd = {
enable = cfg.enable; enable = cfg.enable;
@@ -54,8 +127,8 @@
settings = { settings = {
default_session = { default_session = {
command = "Hyprland -c ${self.packages.${system}.aurora-greeter-hypr-conf}"; command = "start-hyprland -- -c ${self.packages.${system}.aurora-greeter-hypr-conf}";
#user = "greeter"; user = "aurora";
}; };
}; };
}; };

View File

@@ -14,34 +14,40 @@ ClippingWrapperRectangle {
anchors.fill: parent anchors.fill: parent
radius: 10 radius: 10
color: Pywal.special.background color: "black"
//color: Settings.special.background
ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
Text { Text {
id: error id: error
text: "" text: ""
color: Pywal.colors.color13 color: "red"
//color: Settings.colors.color13
visible: false visible: false
} }
Text { Text {
text: "User" text: "User"
color: Pywal.special.foreground color: "white"
//color: Settings.special.foreground
} }
TextInput { TextInput {
id: username id: username
text: "guest" text: "guest"
color: Pywal.special.foreground color: "white"
//color: Settings.special.foreground
} }
Text { Text {
text: "Password" text: "Password"
color: Pywal.special.foreground color: "white"
//color: Settings.special.foreground
} }
TextInput { TextInput {
id: password id: password
text: "test" text: "test"
echoMode: TextInput.Password echoMode: TextInput.Password
color: Pywal.special.foreground color: "white"
//color: Settings.special.foreground
} }
Button { Button {

View File

@@ -1,62 +0,0 @@
pragma Singleton
import Quickshell
import Quickshell.Io
Singleton {
property string wallpaper: json.wallpaper
property string alpha: Math.round(parseInt(json.alpha, 10) * 0xFF / 100).toString(16)
property JsonObject special: json.special
property JsonObject colors: json.colors
function argb(c) {
return c.slice(0, 1) + Pywal.alpha + c.slice(1)
}
FileView {
path: "/home/nathan/.cache/wal/colors.json"
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: json
property string wallpaper: "/home/nathan/Pictures/Wallpaper/bluescape.jpg"
property string alpha: "100"
property JsonObject special: JsonObject {
property string background: "transparent"
property string foreground: "transparent"
property string cursor: "transparent"
}
property JsonObject colors: JsonObject {
property string color0: "transparent"
property string color1: "transparent"
property string color2: "transparent"
property string color3: "transparent"
property string color4: "transparent"
property string color5: "transparent"
property string color6: "transparent"
property string color7: "transparent"
property string color8: "transparent"
property string color9: "transparent"
property string color10: "transparent"
property string color11: "transparent"
property string color12: "transparent"
property string color13: "transparent"
property string color14: "transparent"
property string color15: "transparent"
}
}
}
}

View File

@@ -0,0 +1,109 @@
pragma Singleton
import Quickshell // for PanelWindow
import QtQuick // for Text
import QtQuick.Shapes
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell.Io
import Quickshell.Widgets
import Quickshell.Wayland
import Quickshell.Hyprland
Singleton {
property bool launcherOpen: false
property string colorsDir: s_json.colorsDir
property string wallpaperDir: s_json.wallpaperDir
property string settingsDir: "/home/" + Quickshell.env("USER") + "/.config/aurora"
onSettingsDirChanged: reload()
function reload() {
settings.reload()
root.wallpaperDir = Qt.binding(() => s_json.wallpaperDir)
root.colorsDir = Qt.binding(() => s_json.colorsDir)
root.wallpaper = Qt.binding(() => c_json.wallpaper)
root.colors = Qt.binding(() => c_json.colors)
}
id: root
FileView {
id: settings
path: root.settingsDir + "/settings.json"
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: s_json
property string wallpaperDir
property string colorsDir
}
}
property string wallpaper: c_json.wallpaper
property string alpha: Math.round(parseInt(c_json.alpha, 10) * 0xFF / 100).toString(16)
property JsonObject special: c_json.special
property JsonObject colors: c_json.colors
function argb(c) {
return c.slice(0, 1) + Settings.alpha + c.slice(1)
}
FileView {
id: pywal
path: root.colorsDir
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: c_json
property string wallpaper
property string alpha: "100"
property JsonObject special: JsonObject {
property string background: "transparent"
property string foreground: "transparent"
property string cursor: "transparent"
}
property JsonObject colors: JsonObject {
property string color0: "transparent"
property string color1: "transparent"
property string color2: "transparent"
property string color3: "transparent"
property string color4: "transparent"
property string color5: "transparent"
property string color6: "transparent"
property string color7: "transparent"
property string color8: "transparent"
property string color9: "transparent"
property string color10: "transparent"
property string color11: "transparent"
property string color12: "transparent"
property string color13: "transparent"
property string color14: "transparent"
property string color15: "transparent"
}
}
}
}

View File

@@ -46,6 +46,8 @@ PanelWindow {
root.hyprcmds.forEach((c) => { Hyprland.dispatch(c) }) root.hyprcmds.forEach((c) => { Hyprland.dispatch(c) })
} }
}) })
Settings.reload()
} }
property int topEx: topRect.reserve property int topEx: topRect.reserve
@@ -54,14 +56,13 @@ PanelWindow {
property int leftEx: leftRect.reserve property int leftEx: leftRect.reserve
property int rightEx: rightRect.reserve property int rightEx: rightRect.reserve
property color bg: (Pywal.special.background) property color bg: (Settings.special.background)
id: root id: root
exclusionMode: ExclusionMode.Ignore exclusionMode: ExclusionMode.Ignore
WlrLayershell.layer: WlrLayer.Top WlrLayershell.layer: WlrLayer.Top
//color: Pywal.special.background
color: "transparent" color: "transparent"
mask: Region { mask: Region {
@@ -121,7 +122,7 @@ PanelWindow {
strokeWidth: 1 strokeWidth: 1
strokeColor: "transparent" strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background) fillColor: root.bg
startX: 0; startY: 0 startX: 0; startY: 0
PathLine { relativeX: 0; relativeY: radius } PathLine { relativeX: 0; relativeY: radius }
@@ -143,7 +144,7 @@ PanelWindow {
strokeWidth: 1 strokeWidth: 1
strokeColor: "transparent" strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background) fillColor: root.bg
startX: 0; startY: 0 startX: 0; startY: 0
@@ -167,7 +168,7 @@ PanelWindow {
strokeWidth: 1 strokeWidth: 1
strokeColor: "transparent" strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background) fillColor: root.bg
startX: 0; startY: 0 startX: 0; startY: 0
@@ -190,7 +191,7 @@ PanelWindow {
ShapePath { ShapePath {
strokeWidth: 1 strokeWidth: 1
strokeColor: "transparent" strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background) fillColor: root.bg
startX: 0; startY: 0 startX: 0; startY: 0

View File

@@ -48,7 +48,7 @@ ColumnLayout {
hoverEnabled: true hoverEnabled: true
onEntered: { onEntered: {
midFO.visible = true Settings.launcherOpen = true
} }
} }

View File

@@ -11,7 +11,7 @@ ClippingWrapperRectangle {
radius: 3 radius: 3
color: Pywal.colors.color2 color: Settings.colors.color2
implicitWidth: 30 implicitWidth: 30
@@ -28,7 +28,7 @@ ClippingWrapperRectangle {
font.pointSize: 14 font.pointSize: 14
color: Pywal.special.foreground color: Settings.special.foreground
rotation: -90 rotation: -90
} }
} }

View File

@@ -20,14 +20,14 @@ ColumnLayout {
implicitHeight: 30 implicitHeight: 30
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
Layout.margins: 5 Layout.margins: 5
color: Pywal.colors.color11 color: Settings.colors.color11
RowLayout { RowLayout {
Text { Text {
text: 'Bluetooth' text: 'Bluetooth'
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
Layout.margins: 5 Layout.margins: 5
color: Pywal.colors.color0 color: Settings.colors.color0
} }
Switch { Switch {
@@ -63,7 +63,7 @@ ColumnLayout {
ClippingWrapperRectangle { ClippingWrapperRectangle {
radius: 5 radius: 5
color: Pywal.colors.color4 color: Settings.colors.color4
implicitWidth: root.width - 3 * scroll.x implicitWidth: root.width - 3 * scroll.x
implicitHeight: 40 implicitHeight: 40
@@ -77,7 +77,7 @@ ColumnLayout {
Layout.margins: 5 Layout.margins: 5
text: rep.model[index].name text: rep.model[index].name
color: Pywal.colors.color0 color: Settings.colors.color0
} }
Button { Button {

View File

@@ -10,7 +10,7 @@ WrapperMouseArea {
ClippingWrapperRectangle { ClippingWrapperRectangle {
id: rect id: rect
color: Pywal.colors.color12 color: Settings.colors.color12
radius: 3 radius: 3
anchors.fill: parent anchors.fill: parent
Text { Text {
@@ -19,7 +19,7 @@ WrapperMouseArea {
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
text: Qt.formatDateTime(clock.date, "dddd HH:mm:ss MM/dd/yyyy") text: Qt.formatDateTime(clock.date, "dddd HH:mm:ss MM/dd/yyyy")
font.pointSize: 11 font.pointSize: 11
color: Pywal.special.background color: Settings.special.background
SystemClock { SystemClock {
id: clock id: clock

View File

@@ -41,7 +41,7 @@ Item {
visible: root.visible visible: root.visible
color: Pywal.special.background color: Settings.special.background
radius: root.radius radius: root.radius
item: main item: main
@@ -49,7 +49,7 @@ Item {
WrapperMouseArea { WrapperMouseArea {
ClippingRectangle { ClippingRectangle {
//anchors.fill: parent //anchors.fill: parent
color: Pywal.special.background color: Settings.special.background
id: main id: main
radius: root.radius radius: root.radius
@@ -80,7 +80,7 @@ Item {
implicitWidth: 40 implicitWidth: 40
implicitHeight: 40 implicitHeight: 40
radius: root.radius radius: root.radius
color: index == selected ? Pywal.colors.color13 : Pywal.colors.color4 color: index == selected ? Settings.colors.color13 : Settings.colors.color4
//LauncherButton { anchors.centerIn: parent } //LauncherButton { anchors.centerIn: parent }
Text { Text {
font.pointSize: 14 font.pointSize: 14
@@ -107,14 +107,14 @@ Item {
return ""; return "";
} }
anchors.centerIn: parent anchors.centerIn: parent
color: Pywal.colors.color0 color: Settings.colors.color0
} }
} }
onEntered: child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color12) onEntered: child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color12)
onExited: child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color4) onExited: child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color4)
onClicked: { onClicked: {
selected = index selected = index
child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color4) child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color4)
} }
hoverEnabled: true hoverEnabled: true
} }
@@ -126,7 +126,7 @@ Item {
implicitWidth: parent.width - tabs.width - 2 * parent.spacing - rTabs.width - 2 * parent.spacing implicitWidth: parent.width - tabs.width - 2 * parent.spacing - rTabs.width - 2 * parent.spacing
implicitHeight: parent.height implicitHeight: parent.height
radius: root.radius radius: root.radius
color: Pywal.colors.color1 color: Settings.colors.color1
NotificationServer { NotificationServer {
id: nserver id: nserver
@@ -205,7 +205,7 @@ Item {
implicitHeight: 40 implicitHeight: 40
radius: root.radius radius: root.radius
property bool use: false property bool use: false
color: use ? Pywal.colors.color13 : Pywal.colors.color4 color: use ? Settings.colors.color13 : Settings.colors.color4
//LauncherButton { anchors.centerIn: parent } //LauncherButton { anchors.centerIn: parent }
Text { Text {
font.pointSize: 14 font.pointSize: 14
@@ -232,11 +232,11 @@ Item {
return ""; return "";
} }
anchors.centerIn: parent anchors.centerIn: parent
color: Pywal.colors.color0 color: Settings.colors.color0
} }
} }
onEntered: child.color = Qt.binding(() => child.use ? Pywal.colors.color13 : Pywal.colors.color12) onEntered: child.color = Qt.binding(() => child.use ? Settings.colors.color13 : Settings.colors.color12)
onExited: child.color = Qt.binding(() => child.use ? Pywal.colors.color13 : Pywal.colors.color4) onExited: child.color = Qt.binding(() => child.use ? Settings.colors.color13 : Settings.colors.color4)
onClicked: { onClicked: {
child.use = !child.use child.use = !child.use

View File

@@ -10,7 +10,7 @@ ClippingWrapperRectangle {
id: root id: root
radius: 3 radius: 3
color: Pywal.colors.color1 color: Settings.colors.color1
implicitWidth: 30; height: 30 implicitWidth: 30; height: 30
Button { Button {
id: button id: button
@@ -19,7 +19,7 @@ ClippingWrapperRectangle {
background: Rectangle { background: Rectangle {
color: Pywal.colors.color9 color: Settings.colors.color9
} }
Process { Process {

View File

@@ -14,11 +14,11 @@ VFlyoutUp {
required property list<string> hyprcmds required property list<string> hyprcmds
visible: false visible: Settings.launcherOpen
item: content item: content
onExited: visible = false onExited: Settings.launcherOpen = false
ClippingRectangle { ClippingRectangle {
id: content id: content
@@ -26,7 +26,7 @@ VFlyoutUp {
implicitWidth: 700 implicitWidth: 700
implicitHeight: wallpaper.height implicitHeight: wallpaper.height
color: Pywal.colors.color1 color: Settings.colors.color1
Wallpaper { Wallpaper {
id: wallpaper id: wallpaper

View File

@@ -5,6 +5,7 @@ import Quickshell.Io
import Quickshell.Widgets import Quickshell.Widgets
WrapperMouseArea { WrapperMouseArea {
ClippingWrapperRectangle { ClippingWrapperRectangle {
radius: 3 radius: 3
implicitWidth: 30; implicitHeight: 30 implicitWidth: 30; implicitHeight: 30
@@ -15,22 +16,16 @@ WrapperMouseArea {
text: " " text: " "
font.pointSize: 16 font.pointSize: 16
color: Pywal.special.foreground color: Settings.special.foreground
} }
color: { color: {
containsMouse containsMouse
? Pywal.colors.color12 ? Settings.colors.color12
: Pywal.colors.color1 : Settings.colors.color1
} }
} }
hoverEnabled: true hoverEnabled: true
Process { onClicked: Settings.launcherOpen = true
id: launcher
running: false
command: ["rofi", "-show", "drun", "-show-icons" ]
}
onClicked: launcher.running = true
} }

View File

@@ -21,7 +21,7 @@ Item {
required property string bg_path required property string bg_path
property color fieldColor: ctx.failed ? Pywal.colors.color6 : Pywal.colors.color1 property color fieldColor: ctx.failed ? Settings.colors.color6 : Settings.colors.color1
IpcHandler { IpcHandler {
target: "lockscreen" target: "lockscreen"
@@ -66,7 +66,7 @@ Item {
anchors.centerIn: parent anchors.centerIn: parent
radius: 10 radius: 10
color: Pywal.special.background color: Settings.special.background
RowLayout { RowLayout {
ClippingWrapperRectangle { ClippingWrapperRectangle {
@@ -85,7 +85,7 @@ Item {
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
font.pointSize: 30 font.pointSize: 30
color: Pywal.special.foreground color: Settings.special.foreground
} }
} }

View File

@@ -15,7 +15,7 @@ ClippingWrapperRectangle {
implicitWidth: parent.width - 2 * Layout.margins implicitWidth: parent.width - 2 * Layout.margins
implicitHeight: 100 implicitHeight: 100
color: Pywal.colors.color4 color: Settings.colors.color4
required property Notification src required property Notification src
@@ -43,14 +43,14 @@ ClippingWrapperRectangle {
Layout.topMargin: 10 Layout.topMargin: 10
Layout.alignment: Qt.AlignLeft | Qt.AlignTop Layout.alignment: Qt.AlignLeft | Qt.AlignTop
Text { Text {
color: Pywal.special.background color: Settings.special.background
Layout.alignment: Qt.AlignLeft | Qt.AlignTop Layout.alignment: Qt.AlignLeft | Qt.AlignTop
text: notif.src.summary text: notif.src.summary
Layout.leftMargin: 10 Layout.leftMargin: 10
font.pointSize: 14 font.pointSize: 14
} }
Text { Text {
color: Pywal.special.background color: Settings.special.background
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
text: notif.src.body text: notif.src.body
Layout.leftMargin: 10 Layout.leftMargin: 10

View File

@@ -18,7 +18,7 @@ ColumnLayout {
ClippingWrapperRectangle { ClippingWrapperRectangle {
color: Pywal.colors.color11 color: Settings.colors.color11
radius: 5 radius: 5
Layout.margins: 5 Layout.margins: 5
Layout.alignment: Qt.AlignVCenter | Qt.AlignTop Layout.alignment: Qt.AlignVCenter | Qt.AlignTop
@@ -27,7 +27,7 @@ ColumnLayout {
RowLayout { RowLayout {
width: parent.width width: parent.width
Text { Text {
color: Pywal.colors.color0 color: Settings.colors.color0
Layout.margins: 5 Layout.margins: 5
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
text: 'Notifications' text: 'Notifications'

View File

@@ -79,22 +79,22 @@ PanelWindow {
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
color: Pywal.special.foreground color: Settings.special.foreground
} }
implicitHeight: 60 implicitHeight: 60
implicitWidth: 60 implicitWidth: 60
color: parent.contansMouse ? Pywal.colors.color12 : Pywal.colors.color4 color: parent.contansMouse ? Settings.colors.color12 : Settings.colors.color4
} }
hoverEnabled: true hoverEnabled: true
onEntered: { onEntered: {
child.color = Pywal.colors.color12 child.color = Settings.colors.color12
} }
onExited: { onExited: {
child.color = Pywal.colors.color4 child.color = Settings.colors.color4
} }
onClicked: { onClicked: {

View File

@@ -21,7 +21,7 @@ ColumnLayout {
onClicked: PowerProfiles.profile = PowerProfile.Performance onClicked: PowerProfiles.profile = PowerProfile.Performance
visible: PowerProfiles.hasPerformanceProfile visible: PowerProfiles.hasPerformanceProfile
background: Rectangle { color: PowerProfiles.profile == PowerProfile.Performance ? Pywal.colors.color13 : Pywal.colors.color4 } background: Rectangle { color: PowerProfiles.profile == PowerProfile.Performance ? Settings.colors.color13 : Settings.colors.color4 }
} }
Button { Button {
Layout.topMargin: 5 Layout.topMargin: 5
@@ -31,7 +31,7 @@ ColumnLayout {
text: 'balanced' text: 'balanced'
onClicked: PowerProfiles.profile = PowerProfile.Balanced onClicked: PowerProfiles.profile = PowerProfile.Balanced
background: Rectangle { color: PowerProfiles.profile == PowerProfile.Balanced ? Pywal.colors.color13 : Pywal.colors.color4 } background: Rectangle { color: PowerProfiles.profile == PowerProfile.Balanced ? Settings.colors.color13 : Settings.colors.color4 }
} }
Button { Button {
Layout.topMargin: 5 Layout.topMargin: 5
@@ -41,6 +41,6 @@ ColumnLayout {
text: 'power saver' text: 'power saver'
onClicked: PowerProfiles.profile = PowerProfile.PowerSaver onClicked: PowerProfiles.profile = PowerProfile.PowerSaver
background: Rectangle { color: PowerProfiles.profile == PowerProfile.PowerSaver ? Pywal.colors.color13 : Pywal.colors.color4 } background: Rectangle { color: PowerProfiles.profile == PowerProfile.PowerSaver ? Settings.colors.color13 : Settings.colors.color4 }
} }
} }

View File

@@ -1,62 +0,0 @@
pragma Singleton
import Quickshell
import Quickshell.Io
Singleton {
property string wallpaper: json.wallpaper
property string alpha: Math.round(parseInt(json.alpha, 10) * 0xFF / 100).toString(16)
property JsonObject special: json.special
property JsonObject colors: json.colors
function argb(c) {
return c.slice(0, 1) + Pywal.alpha + c.slice(1)
}
FileView {
path: "/home/nathan/.cache/wal/colors.json"
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: json
property string wallpaper: "/home/nathan/Pictures/Wallpaper/bluescape.jpg"
property string alpha: "100"
property JsonObject special: JsonObject {
property string background: "transparent"
property string foreground: "transparent"
property string cursor: "transparent"
}
property JsonObject colors: JsonObject {
property string color0: "transparent"
property string color1: "transparent"
property string color2: "transparent"
property string color3: "transparent"
property string color4: "transparent"
property string color5: "transparent"
property string color6: "transparent"
property string color7: "transparent"
property string color8: "transparent"
property string color9: "transparent"
property string color10: "transparent"
property string color11: "transparent"
property string color12: "transparent"
property string color13: "transparent"
property string color14: "transparent"
property string color15: "transparent"
}
}
}
}

View File

@@ -0,0 +1,109 @@
pragma Singleton
import Quickshell // for PanelWindow
import QtQuick // for Text
import QtQuick.Shapes
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell.Io
import Quickshell.Widgets
import Quickshell.Wayland
import Quickshell.Hyprland
Singleton {
property bool launcherOpen: false
property string colorsDir: s_json.colorsDir
property string wallpaperDir: s_json.wallpaperDir
property string settingsDir: "/home/" + Quickshell.env("USER") + "/.config/aurora"
onSettingsDirChanged: reload()
function reload() {
settings.reload()
root.wallpaperDir = Qt.binding(() => s_json.wallpaperDir)
root.colorsDir = Qt.binding(() => s_json.colorsDir)
root.wallpaper = Qt.binding(() => c_json.wallpaper)
root.colors = Qt.binding(() => c_json.colors)
}
id: root
FileView {
id: settings
path: root.settingsDir + "/settings.json"
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: s_json
property string wallpaperDir
property string colorsDir
}
}
property string wallpaper: c_json.wallpaper
property string alpha: Math.round(parseInt(c_json.alpha, 10) * 0xFF / 100).toString(16)
property JsonObject special: c_json.special
property JsonObject colors: c_json.colors
function argb(c) {
return c.slice(0, 1) + Settings.alpha + c.slice(1)
}
FileView {
id: pywal
path: root.colorsDir
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: c_json
property string wallpaper
property string alpha: "100"
property JsonObject special: JsonObject {
property string background: "transparent"
property string foreground: "transparent"
property string cursor: "transparent"
}
property JsonObject colors: JsonObject {
property string color0: "transparent"
property string color1: "transparent"
property string color2: "transparent"
property string color3: "transparent"
property string color4: "transparent"
property string color5: "transparent"
property string color6: "transparent"
property string color7: "transparent"
property string color8: "transparent"
property string color9: "transparent"
property string color10: "transparent"
property string color11: "transparent"
property string color12: "transparent"
property string color13: "transparent"
property string color14: "transparent"
property string color15: "transparent"
}
}
}
}

View File

@@ -19,12 +19,12 @@ FloatingWindow {
visible: false visible: false
color: Pywal.special.background color: Settings.special.background
WrapperMouseArea { WrapperMouseArea {
ClippingRectangle { ClippingRectangle {
//anchors.fill: parent //anchors.fill: parent
color: Pywal.special.background color: Settings.special.background
id: main id: main
radius: root.radius radius: root.radius
@@ -55,7 +55,7 @@ FloatingWindow {
implicitWidth: 40 implicitWidth: 40
implicitHeight: 40 implicitHeight: 40
radius: root.radius radius: root.radius
color: index == selected ? Pywal.colors.color13 : Pywal.colors.color4 color: index == selected ? Settings.colors.color13 : Settings.colors.color4
//LauncherButton { anchors.centerIn: parent } //LauncherButton { anchors.centerIn: parent }
Text { Text {
font.pointSize: 14 font.pointSize: 14
@@ -82,14 +82,14 @@ FloatingWindow {
return ""; return "";
} }
anchors.centerIn: parent anchors.centerIn: parent
color: Pywal.colors.color0 color: Settings.colors.color0
} }
} }
onEntered: child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color12) onEntered: child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color12)
onExited: child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color4) onExited: child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color4)
onClicked: { onClicked: {
selected = index selected = index
child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color4) child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color4)
} }
hoverEnabled: true hoverEnabled: true
} }
@@ -101,7 +101,7 @@ FloatingWindow {
implicitWidth: parent.width - tabs.width - 2 * parent.spacing - rTabs.width - 2 * parent.spacing implicitWidth: parent.width - tabs.width - 2 * parent.spacing - rTabs.width - 2 * parent.spacing
implicitHeight: parent.height implicitHeight: parent.height
radius: root.radius radius: root.radius
color: Pywal.colors.color1 color: Settings.colors.color1
Loader { Loader {
anchors.fill: parent anchors.fill: parent
@@ -159,7 +159,7 @@ FloatingWindow {
implicitHeight: 40 implicitHeight: 40
radius: root.radius radius: root.radius
property bool use: false property bool use: false
color: use ? Pywal.colors.color13 : Pywal.colors.color4 color: use ? Settings.colors.color13 : Settings.colors.color4
//LauncherButton { anchors.centerIn: parent } //LauncherButton { anchors.centerIn: parent }
Text { Text {
font.pointSize: 14 font.pointSize: 14
@@ -186,11 +186,11 @@ FloatingWindow {
return ""; return "";
} }
anchors.centerIn: parent anchors.centerIn: parent
color: Pywal.colors.color0 color: Settings.colors.color0
} }
} }
onEntered: child.color = Qt.binding(() => child.use ? Pywal.colors.color13 : Pywal.colors.color12) onEntered: child.color = Qt.binding(() => child.use ? Settings.colors.color13 : Settings.colors.color12)
onExited: child.color = Qt.binding(() => child.use ? Pywal.colors.color13 : Pywal.colors.color4) onExited: child.color = Qt.binding(() => child.use ? Settings.colors.color13 : Settings.colors.color4)
onClicked: { onClicked: {
child.use = !child.use child.use = !child.use

View File

@@ -16,7 +16,7 @@ Item {
ClippingWrapperRectangle { ClippingWrapperRectangle {
radius: 3 radius: 3
anchors.fill: parent anchors.fill: parent
color: Pywal.colors.color4 color: Settings.colors.color4
ColumnLayout { ColumnLayout {
id: lay id: lay
spacing: 4 spacing: 4
@@ -30,7 +30,7 @@ Item {
implicitWidth: 20 implicitWidth: 20
implicitHeight: 20 implicitHeight: 20
color: Pywal.colors.color4 color: Settings.colors.color4
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent

View File

@@ -18,7 +18,7 @@ ScrollView {
ClippingWrapperRectangle { ClippingWrapperRectangle {
color: Pywal.colors.color11 color: Settings.colors.color11
radius: 5 radius: 5
Layout.margins: 5 Layout.margins: 5
Layout.alignment: Qt.AlignVCenter | Qt.AlignTop Layout.alignment: Qt.AlignVCenter | Qt.AlignTop
@@ -27,7 +27,7 @@ ScrollView {
RowLayout { RowLayout {
width: parent.width width: parent.width
Text { Text {
color: Pywal.colors.color0 color: Settings.colors.color0
Layout.margins: 5 Layout.margins: 5
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
text: 'Output' text: 'Output'
@@ -71,7 +71,7 @@ ScrollView {
ClippingWrapperRectangle { ClippingWrapperRectangle {
color: Pywal.colors.color11 color: Settings.colors.color11
radius: 5 radius: 5
Layout.margins: 5 Layout.margins: 5
Layout.alignment: Qt.AlignVCenter | Qt.AlignTop Layout.alignment: Qt.AlignVCenter | Qt.AlignTop
@@ -80,7 +80,7 @@ ScrollView {
RowLayout { RowLayout {
width: parent.width width: parent.width
Text { Text {
color: Pywal.colors.color0 color: Settings.colors.color0
Layout.margins: 5 Layout.margins: 5
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
text: 'Input' text: 'Input'

View File

@@ -16,7 +16,7 @@ Flickable {
id: root id: root
property string dir: "/home/nathan/Pictures/Wallpaper/" property string dir: Settings.wallpaperDir
implicitHeight: lay.height implicitHeight: lay.height
implicitWidth: 750 implicitWidth: 750
@@ -26,8 +26,6 @@ Flickable {
flickDeceleration: 5000 flickDeceleration: 5000
contentX: 100
WheelHandler { WheelHandler {
target: root target: root
//property: "contentX" //property: "contentX"
@@ -64,7 +62,7 @@ Flickable {
implicitWidth: 192 * 2; implicitHeight: 108 * 2 implicitWidth: 192 * 2; implicitHeight: 108 * 2
Image { Image {
width: 192 * 2; height: 108 * 2 width: 192 * 2; height: 108 * 2
source: Qt.resolvedUrl(root.dir + rep.model[index]) source: Qt.resolvedUrl(root.dir + "/" + rep.model[index])
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
sourceSize.width: 192 * 2 sourceSize.width: 192 * 2
sourceSize.height: 108 * 2 sourceSize.height: 108 * 2
@@ -72,7 +70,7 @@ Flickable {
} }
property Process sw: Process { property Process sw: Process {
command: ["setWallpaper", root.dir + rep.model[index]] command: ["aurora-set-wallpaper", root.dir + "/" + rep.model[index]]
running: false running: false
onRunningChanged: { onRunningChanged: {
root.hyprcmds.forEach((c) => Hyprland.dispatch(c)) root.hyprcmds.forEach((c) => Hyprland.dispatch(c))

View File

@@ -11,7 +11,7 @@ Item {
Component.onCompleted: Hyprland.refreshWorkspaces() Component.onCompleted: Hyprland.refreshWorkspaces()
ClippingWrapperRectangle { ClippingWrapperRectangle {
color: Pywal.colors.color1 color: Settings.colors.color1
radius: 3 radius: 3
anchors.fill: parent anchors.fill: parent
ColumnLayout { ColumnLayout {
@@ -37,10 +37,10 @@ Item {
implicitHeight: 24 implicitHeight: 24
color: { color: {
Hyprland?.focusedWorkspace?.id == rep.model[index].id Hyprland?.focusedWorkspace?.id == rep.model[index].id
? Pywal.colors.color13 ? Settings.colors.color13
: containsMouse : containsMouse
? Pywal.colors.color12 ? Settings.colors.color12
: Pywal.colors.color4 : Settings.colors.color4
} }
Text { Text {
@@ -51,8 +51,8 @@ Item {
color: { color: {
Hyprland?.focusedWorkspace?.id == rep.model[index].id Hyprland?.focusedWorkspace?.id == rep.model[index].id
? Pywal.colors.color1 ? Settings.colors.color1
: Pywal.special.foreground : Settings.special.foreground
} }
} }
} }