Compare commits

...

30 Commits

Author SHA1 Message Date
b2ec3d9cd0 update flake 2026-04-12 21:20:54 -05:00
35fbfa3d95 update flake 2026-04-12 20:58:43 -05:00
c7fe5778db update flake 2026-04-12 20:57:10 -05:00
c51c9752d1 update flake 2026-04-12 20:50:56 -05:00
067ebcae93 update flake 2026-04-12 20:49:15 -05:00
fac3994444 update flake 2026-04-12 20:39:33 -05:00
b396a302d3 update flake 2026-04-11 20:03:09 -05:00
7179e6441f update flake 2026-04-11 20:01:47 -05:00
6902564ac1 renamed package 2026-04-11 07:27:12 -05:00
dbc8351e82 update flake 2026-04-11 06:55:13 -05:00
3e14569edd test 2026-04-10 16:56:54 -05:00
062b6d63bd test 2026-04-10 16:53:41 -05:00
983f0f24de test 2026-04-10 16:48:49 -05:00
2f00ce43be test 2026-04-10 16:45:15 -05:00
cf4da27549 test 2026-04-10 16:41:31 -05:00
2fb2731383 test 2026-04-10 16:30:47 -05:00
37c05f2e36 test 2026-04-10 16:26:25 -05:00
58adc58002 test 2026-04-10 16:09:16 -05:00
b97e9dc547 test 2026-04-10 13:12:00 -05:00
bd134cad26 test 2026-04-10 12:04:06 -05:00
67c56deae2 test 2026-04-10 11:48:20 -05:00
dc14e418f3 test 2026-04-10 11:42:46 -05:00
4584546301 test 2026-04-10 10:28:03 -05:00
3602272e4d test 2026-04-10 00:59:41 -05:00
e153502401 test 2026-04-09 19:01:07 -05:00
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
26 changed files with 403 additions and 191 deletions

View File

@@ -1,4 +1,4 @@
{ self, ... }: {
{ self, inputs, ... }: {
perSystem = { self', pkgs, system, ... }: {
@@ -23,12 +23,109 @@
mkdir -p $out/share
cp -r $src/* $out/share
'';
};
};
aurora-greeter-hypr-conf = pkgs.writeText "greeter-conf" ''
exec-once=${self.packages.${system}.aurora-greeter}/bin/aurora-greeter
exec-once=${self'.packages.aurora-greeter-init}/bin/aurora-greeter-init
misc {
disable_hyprland_logo = false
disable_splash_rendering = true
force_default_wallpaper = 0
}
ecosystem {
no_update_news = true
no_donation_nag = true
}
'';
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.awww}/bin/awww 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.awww}/bin/awww img ''$img -t wipe" >> ''$out
fi
${self'.packages.aurora-change-colors}/bin/aurora-change-colors "''$src" "''$2" >> ''$out
'');
aurora-greeter-init = (pkgs.writeShellScriptBin "aurora-greeter-init" ''
if [[ ! -d /tmp/aurora ]]; then
mkdir /tmp/aurora
fi
hyprctl --batch "\
dispatch exec ${pkgs.awww}/bin/awww-daemon ;\
dispatch exec ${self'.packages.aurora-set-wallpaper}/bin/aurora-set-wallpaper;\
setcursor Bibata-Modern-Classic 16"
sleep 3
hyprctl reload
${self'.packages.aurora-greeter}/bin/aurora-greeter
rm ~/.config/wal/colorschemes/dark/wallpaper*
hyprctl dispatch exit
'');
aurora-init = (pkgs.writeShellScriptBin "aurora-init" ''
if [[ ! -d /tmp/aurora ]]; then
mkdir /tmp/aurora
fi
hyprctl --batch "\
dispatch exec ${pkgs.awww}/bin/awww-daemon ;\
dispatch exec ${self'.packages.aurora-set-wallpaper}/bin/aurora-set-wallpaper;\
setcursor Bibata-Modern-Classic 16"
sleep 3
hyprctl reload
'');
};
};
@@ -42,11 +139,32 @@
cfg = config.services.aurora-greeter;
system = pkgs.stdenv.hostPlatform.system;
pkgs-a = import inputs.nixpkgs { inherit system; };
in {
environment.systemPackages = [
self.packages.${system}.aurora-greeter
];
users.users.aurora = {
createHome = true;
home = "/tmp/aurora/home";
packages = with pkgs; [
self.packages.${system}.aurora-greeter
self.packages.${system}.aurora-greeter-init
self.packages.${system}.aurora-set-wallpaper
pkgs-a.awww
mpvpaper
ffmpeg
];
isNormalUser = true;
group = "aurora";
};
users.groups.aurora = {};
services.greetd = {
enable = cfg.enable;
@@ -54,8 +172,8 @@
settings = {
default_session = {
command = "Hyprland -c ${self.packages.${system}.aurora-greeter-hypr-conf}";
#user = "greeter";
command = "start-hyprland -- -c ${self.packages.${system}.aurora-greeter-hypr-conf}";
user = "aurora";
};
};
};

View File

@@ -14,34 +14,40 @@ ClippingWrapperRectangle {
anchors.fill: parent
radius: 10
color: Pywal.special.background
//color: "black"
color: Settings.special.background
ColumnLayout {
anchors.fill: parent
Text {
id: error
text: ""
color: Pywal.colors.color13
//color: "red"
color: Settings.colors.color13
visible: false
}
Text {
text: "User"
color: Pywal.special.foreground
//color: "white"
color: Settings.special.foreground
}
TextInput {
id: username
text: "guest"
color: Pywal.special.foreground
//color: "white"
color: Settings.special.foreground
}
Text {
text: "Password"
color: Pywal.special.foreground
//color: "white"
color: Settings.special.foreground
}
TextInput {
id: password
text: "test"
echoMode: TextInput.Password
color: Pywal.special.foreground
//color: "white"
color: Settings.special.foreground
}
Button {
@@ -69,7 +75,7 @@ ClippingWrapperRectangle {
Greetd.readyToLaunch.connect(() => {
console.log("readyToLaunch")
Greetd.launch([ "Hyprland" ])
Greetd.launch([ "start-hyprland" ])
})
console.log("createSession")
Greetd.createSession(username.text)

View File

@@ -1,32 +1,44 @@
pragma Singleton
import Quickshell
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 {
id: root
property string wallpaper: json.wallpaper
property string wallpaper: c_json.wallpaper
property string alpha: Math.round(parseInt(json.alpha, 10) * 0xFF / 100).toString(16)
property string alpha: Math.round(parseInt(c_json.alpha, 10) * 0xFF / 100).toString(16)
property JsonObject special: json.special
property JsonObject colors: json.colors
property JsonObject special: c_json.special
property JsonObject colors: c_json.colors
function argb(c) {
return c.slice(0, 1) + Pywal.alpha + c.slice(1)
return c.slice(0, 1) + Settings.alpha + c.slice(1)
}
FileView {
path: "/home/nathan/.cache/wal/colors.json"
id: pywal
path: "/tmp/aurora/home/.cache/wal/colors.json"
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: json
property string wallpaper: "/home/nathan/Pictures/Wallpaper/bluescape.jpg"
id: c_json
property string wallpaper
property string alpha: "100"

View File

@@ -68,16 +68,26 @@
default = "hyprland-session.target";
};
};
settings = mkOption {
type = types.attrsOf types.str;
default = {};
};
};
config = let
cfg = config.programs.aurora;
system = pkgs.stdenv.hostPlatform.system;
pkgs-a = import inputs.nixpkgs { inherit system; };
in {
home.packages = with pkgs; [
swww
pkgs-a.awww
mpvpaper
ffmpeg
bluez
bluez-tools
@@ -91,6 +101,9 @@
hyprsunset
wf-recorder
self.packages.${system}.aurora-set-wallpaper
self.packages.${system}.aurora-init
];
programs.quickshell = {
@@ -111,6 +124,10 @@
target = cfg.systemd.target;
};
};
home.file.".config/aurora/settings.json".text = builtins.toJSON cfg.settings;
systemd.user.services.quickshell.Service.Environment = [ "AURORA_SETTINGS=${config.home.homeDirectory}/${config.home.file.".config/aurora/settings.json".target}" ];
};
};
}

View File

@@ -36,6 +36,13 @@ PanelWindow {
bottom: true
}
IpcHandler {
target: "shell"
function reload() {
Quickshell.reload(false)
}
}
Component.onCompleted: {
@@ -46,6 +53,8 @@ PanelWindow {
root.hyprcmds.forEach((c) => { Hyprland.dispatch(c) })
}
})
Settings.reload()
}
property int topEx: topRect.reserve
@@ -54,14 +63,13 @@ PanelWindow {
property int leftEx: leftRect.reserve
property int rightEx: rightRect.reserve
property color bg: (Pywal.special.background)
property color bg: (Settings.special.background)
id: root
exclusionMode: ExclusionMode.Ignore
WlrLayershell.layer: WlrLayer.Top
//color: Pywal.special.background
color: "transparent"
mask: Region {
@@ -121,7 +129,7 @@ PanelWindow {
strokeWidth: 1
strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background)
fillColor: root.bg
startX: 0; startY: 0
PathLine { relativeX: 0; relativeY: radius }
@@ -143,7 +151,7 @@ PanelWindow {
strokeWidth: 1
strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background)
fillColor: root.bg
startX: 0; startY: 0
@@ -167,7 +175,7 @@ PanelWindow {
strokeWidth: 1
strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background)
fillColor: root.bg
startX: 0; startY: 0
@@ -190,7 +198,7 @@ PanelWindow {
ShapePath {
strokeWidth: 1
strokeColor: "transparent"
fillColor: Pywal.argb(Pywal.special.background)
fillColor: root.bg
startX: 0; startY: 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -21,7 +21,7 @@ Item {
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 {
target: "lockscreen"
@@ -66,7 +66,7 @@ Item {
anchors.centerIn: parent
radius: 10
color: Pywal.special.background
color: Settings.special.background
RowLayout {
ClippingWrapperRectangle {
@@ -85,7 +85,7 @@ Item {
verticalAlignment: TextInput.AlignVCenter
font.pointSize: 30
color: Pywal.special.foreground
color: Settings.special.foreground
}
}

View File

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

View File

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

View File

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

View File

@@ -21,7 +21,7 @@ ColumnLayout {
onClicked: PowerProfiles.profile = PowerProfile.Performance
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 {
Layout.topMargin: 5
@@ -31,7 +31,7 @@ ColumnLayout {
text: '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 {
Layout.topMargin: 5
@@ -41,6 +41,6 @@ ColumnLayout {
text: 'power saver'
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,120 @@
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 wallpaperDir: s_json.wallpaperDir
property string colorsPath: s_json.colorsPath
Process {
id: cc
command: [ s_json.changeColorsCmd ]
running: false
}
property string settingsPath: Quickshell.env("AURORA_SETTINGS")
onSettingsPathChanged: reload()
function reload() {
settings.reload()
root.wallpaperDir = Qt.binding(() => s_json.wallpaperDir)
root.colorsPath = Qt.binding(() => s_json.colorsPath)
root.wallpaper = Qt.binding(() => c_json.wallpaper)
root.colors = Qt.binding(() => c_json.colors)
}
id: root
FileView {
id: settings
path: root.settingsPath
watchChanges: true
onFileChanged: reload()
JsonAdapter {
id: s_json
property string wallpaperDir
property string colorsPath
property string changeColorsCmd
}
}
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.colorsPath
watchChanges: true
onFileChanged: {
reload()
cc.running = true
}
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
color: Pywal.special.background
color: Settings.special.background
WrapperMouseArea {
ClippingRectangle {
//anchors.fill: parent
color: Pywal.special.background
color: Settings.special.background
id: main
radius: root.radius
@@ -55,7 +55,7 @@ FloatingWindow {
implicitWidth: 40
implicitHeight: 40
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 }
Text {
font.pointSize: 14
@@ -82,14 +82,14 @@ FloatingWindow {
return "";
}
anchors.centerIn: parent
color: Pywal.colors.color0
color: Settings.colors.color0
}
}
onEntered: child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color12)
onExited: child.color = Qt.binding(() => index == selected ? Pywal.colors.color13 : Pywal.colors.color4)
onEntered: child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color12)
onExited: child.color = Qt.binding(() => index == selected ? Settings.colors.color13 : Settings.colors.color4)
onClicked: {
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
}
@@ -101,7 +101,7 @@ FloatingWindow {
implicitWidth: parent.width - tabs.width - 2 * parent.spacing - rTabs.width - 2 * parent.spacing
implicitHeight: parent.height
radius: root.radius
color: Pywal.colors.color1
color: Settings.colors.color1
Loader {
anchors.fill: parent
@@ -159,7 +159,7 @@ FloatingWindow {
implicitHeight: 40
radius: root.radius
property bool use: false
color: use ? Pywal.colors.color13 : Pywal.colors.color4
color: use ? Settings.colors.color13 : Settings.colors.color4
//LauncherButton { anchors.centerIn: parent }
Text {
font.pointSize: 14
@@ -186,11 +186,11 @@ FloatingWindow {
return "";
}
anchors.centerIn: parent
color: Pywal.colors.color0
color: Settings.colors.color0
}
}
onEntered: child.color = Qt.binding(() => child.use ? Pywal.colors.color13 : Pywal.colors.color12)
onExited: child.color = Qt.binding(() => child.use ? Pywal.colors.color13 : Pywal.colors.color4)
onEntered: child.color = Qt.binding(() => child.use ? Settings.colors.color13 : Settings.colors.color12)
onExited: child.color = Qt.binding(() => child.use ? Settings.colors.color13 : Settings.colors.color4)
onClicked: {
child.use = !child.use

View File

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

View File

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

View File

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

View File

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

36
flake.lock generated
View File

@@ -5,11 +5,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
@@ -23,11 +23,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1772845525,
"narHash": "sha256-Dp5Ir2u4jJDGCgeMRviHvEQDe+U37hMxp6RSNOoMMPc=",
"lastModified": 1775900011,
"narHash": "sha256-QUGu6CJYFQ5AWVV0n3/FsJyV+1/gj7HSDx68/SX9pwM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "27b93804fbef1544cb07718d3f0a451f4c4cd6c0",
"rev": "b0569dc6ec1e6e7fefd8f6897184e4c191cd768e",
"type": "github"
},
"original": {
@@ -38,11 +38,11 @@
},
"import-tree": {
"locked": {
"lastModified": 1772344373,
"narHash": "sha256-OQQ1MhB9t1J71b2wxRRTdH/Qd8UGG0p+dGspfCf5U1c=",
"lastModified": 1773693634,
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
"owner": "vic",
"repo": "import-tree",
"rev": "10fda59eee7d7970ec443b925f32a1bc7526648c",
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
"type": "github"
},
"original": {
@@ -53,11 +53,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1772542754,
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
"lastModified": 1775423009,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
"type": "github"
},
"original": {
@@ -69,11 +69,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1772328832,
"narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
"type": "github"
},
"original": {
@@ -84,11 +84,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1772433332,
"narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=",
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cf59864ef8aa2e178cccedbe2c178185b0365705",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github"
},
"original": {