diff --git a/Droidnix/README.html b/Droidnix/README.html index a7fd5aa0e..08d269d50 100644 --- a/Droidnix/README.html +++ b/Droidnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +generated/flake.nixgenerated/modules/traveldroid/system/colors.nixgenerated/hosts/traveldroid/boot.nixgenerated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/host.nixgenerated/flake.nixgenerated/modules/traveldroid/system/colors.nixgenerated/hosts/traveldroid/boot.nixgenerated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/host.nixgenerated/modules/traveldroid/apps/2_b_installed.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/disabled/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/kdeconnect.nixgenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/starship.nixgenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/wofi.nixgenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zeditor.nixgenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/apps/2_b_installed.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/disabled/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/kdeconnect.nixgenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/starship.nixgenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/wofi.nixgenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zeditor.nixgenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/hyprland.nixgenerated/modules/traveldroid/desktop/stylix.nixgenerated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/waybar.nixgenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/hyprland.nixgenerated/modules/traveldroid/desktop/stylix.nixgenerated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/waybar.nixgenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/avahi.nixgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/copy_scripts.nixgenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/firewall.nixgenerated/modules/traveldroid/system/hypridle.nixgenerated/modules/traveldroid/system/hyprlock.nixgenerated/modules/traveldroid/system/gnome-keyring.nixgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/printing.nixgenerated/modules/traveldroid/system/quickshell.nixgenerated/modules/traveldroid/system/swaync.nixgenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/avahi.nixgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/copy_scripts.nixgenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/firewall.nixgenerated/modules/traveldroid/system/hypridle.nixgenerated/modules/traveldroid/system/hyprlock.nixgenerated/modules/traveldroid/system/gnome-keyring.nixgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/printing.nixgenerated/modules/traveldroid/system/quickshell.nixgenerated/modules/traveldroid/system/swaync.nixgenerated/.config/emacs/early-init.elgenerated/.config/emacs/init.elgenerated/.config/hypr/animations.confgenerated/.config/hypr/behaviour.confgenerated/.config/hypr/bindings.confgenerated/.config/hypr/exec-once.confgenerated/.config/hypr/hypridle.confgenerated/.config/hypr/hyprlock.confgenerated/.config/hypr/hyprland.confgenerated/.config/hypr/layer-rules.confgenerated/.config/hypr/layout.confgenerated/.config/hypr/monitor-rules.confgenerated/.config/hypr/theming.confgenerated/.config/hypr/window-rules.confgenerated/.config/hypr/workspace-rules.confgenerated/.config/quickshell/media/shell.qmlgenerated/.config/quickshell/powermenu/shell.qmlgenerated/.config/quickshell/updater/shell.qmlgenerated/.config/quickshell/layoutswitcher/shell.qmlgenerated/.config/waybar/scripts/batterywarn.shgenerated/.config/waybar/scripts/media.shgenerated/.config/scripts/numlock-check.shgenerated/.config/scripts/power.shgenerated/.config/scripts/update-engine.shgenerated/.config/wofi/scripts/wofi-launcher.shgenerated/.config/shared/colors.cssgenerated/.config/starship.tomlgenerated/.config/stylix/stylix.confgenerated/.config/stylix/palette.jsongenerated/.config/stylix/palette.htmlgenerated/.config/swaync/config.jsongenerated/.config/swaync/style.cssgenerated/.config/waybar/config.jsoncgenerated/.config/waybar/style-dark.cssgenerated/.config/waybar/scripts/bluetooth-status.shgenerated/.config/waybar/scripts/hypr-workspaces.shgenerated/.config/waybar/scripts/hypr-workspacesmenu.shgenerated/.config/waybar/scripts/kdeconnect-status.shgenerated/.config/waypaper/config.inigenerated/.config/waypaper/config.inigenerated/.config/wofi/configgenerated/.config/wofi/style.cssgenerated/.config/zed/settings.jsongenerated/.config/zsh/.zshrcgenerated/.config/emacs/early-init.elgenerated/.config/emacs/init.elgenerated/.config/hypr/animations.confgenerated/.config/hypr/behaviour.confgenerated/.config/hypr/bindings.confgenerated/.config/hypr/exec-once.confgenerated/.config/hypr/hypridle.confgenerated/.config/hypr/hyprlock.confgenerated/.config/hypr/hyprland.confgenerated/.config/hypr/layer-rules.confgenerated/.config/hypr/layout.confgenerated/.config/hypr/monitor-rules.confgenerated/.config/hypr/theming.confgenerated/.config/hypr/window-rules.confgenerated/.config/hypr/workspace-rules.confgenerated/.config/quickshell/media/shell.qmlgenerated/.config/quickshell/powermenu/shell.qmlgenerated/.config/quickshell/updater/shell.qmlgenerated/.config/quickshell/layoutswitcher/shell.qmlgenerated/.config/waybar/scripts/batterywarn.shgenerated/.config/waybar/scripts/media.shgenerated/.config/scripts/numlock-check.shgenerated/.config/scripts/power.shgenerated/.config/wofi/scripts/wofi-launcher.shgenerated/.config/shared/colors.cssgenerated/.config/starship.tomlgenerated/.config/stylix/stylix.confgenerated/.config/stylix/palette.jsongenerated/.config/stylix/palette.htmlgenerated/.config/swaync/config.jsongenerated/.config/swaync/style.cssgenerated/.config/waybar/config.jsoncgenerated/.config/waybar/style-dark.cssgenerated/.config/waybar/scripts/bluetooth-status.shgenerated/.config/waybar/scripts/hypr-workspaces.shgenerated/.config/waybar/scripts/hypr-workspacesmenu.shgenerated/.config/waybar/scripts/kdeconnect-status.shgenerated/.config/waypaper/config.inigenerated/.config/waypaper/config.inigenerated/.config/wofi/configgenerated/.config/wofi/style.cssgenerated/.config/zed/settings.jsongenerated/.config/zsh/.zshrcIntroduction The Assets Folder @@ -356,25 +355,25 @@
Droidnix is a modular, declarative NixOS + Home Manager configuration system. with configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.
This project uses a modular NixOS configuration with Hyprland support, designed for literate programming and cross-device reusability. The Droidnix repository is organized into two main parts: @@ -387,9 +386,9 @@ The Droidnix repository is organized into two main parts:
The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.
./setup_droid.generated/ directory contains all generated configurations, div
The .assets/ folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.
generated/assets/2_b_installed.confgenerated/assets/2_b_installed.confThis is a list of additional apps to install
@@ -510,9 +509,9 @@ com.logseq.Logseqgenerated/assets/aliases.confgenerated/assets/aliases.confThis is a list of additional apps to install
@@ -554,9 +553,9 @@ keys=hyprctl binds This section contains the Org blocks for tangling Nix code into the generated folders.generated/flake.nixgenerated/flake.nixThe Nix flake definition for Droidnix.
@@ -647,9 +646,9 @@ The Nix flake definition for Droidnix.generated/modules/traveldroid/system/colors.nixgenerated/modules/traveldroid/system/colors.nixSetting the colors for Droidnix.
@@ -726,9 +725,9 @@ ingenerated/hosts/traveldroid/boot.nixgenerated/hosts/traveldroid/boot.nix# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ config, pkgs, lib, flakeRoot, ... }:
@@ -797,9 +796,9 @@ in
generated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/host.nixgenerated/hosts/traveldroid/host.nix{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
@@ -919,13 +918,13 @@ in
generated/modules/traveldroid/apps/2_b_installed.nixgenerated/modules/traveldroid/apps/2_b_installed.nixThis installs a list of apps
@@ -1033,9 +1032,9 @@ in {generated/modules/traveldroid/apps/emacs/emacs.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixThis installs emacs
@@ -1131,9 +1130,9 @@ ingenerated/disabled/modules/traveldroid/apps/flameshot.nixgenerated/disabled/modules/traveldroid/apps/flameshot.nixThis is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
@@ -1193,9 +1192,9 @@ ingenerated/modules/traveldroid/apps/kdeconnect.nixgenerated/modules/traveldroid/apps/kdeconnect.nixThis is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
@@ -1224,9 +1223,9 @@ ingenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/kitty.nixThis file sets up Kitty terminal
@@ -1278,9 +1277,9 @@ ingenerated/modules/traveldroid/apps/starship.nixgenerated/modules/traveldroid/apps/starship.nixThis file sets up starship prompt
@@ -1319,9 +1318,9 @@ ingenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/thunar.nixThis is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
@@ -1367,9 +1366,9 @@ ingenerated/modules/traveldroid/apps/wofi.nixgenerated/modules/traveldroid/apps/wofi.nixThis is the install for Wofi, the launcher
@@ -1404,9 +1403,9 @@ ingenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zenbrowser.nixThis installs zen browser
@@ -1426,9 +1425,9 @@ ingenerated/modules/traveldroid/apps/zeditor.nixgenerated/modules/traveldroid/apps/zeditor.nixThis sets Zed Editor
@@ -1484,9 +1483,9 @@ ingenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/apps/zsh.nixThis sets up the zsh in the terminal
@@ -1600,13 +1599,13 @@ ingenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/fonts.nixThis file installs and configures fonts
@@ -1624,9 +1623,9 @@ This file installs and configures fontsgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/gtk.nixSetting up GTK
@@ -1652,9 +1651,9 @@ ingenerated/modules/traveldroid/desktop/hyprland.nixgenerated/modules/traveldroid/desktop/hyprland.nixSetting up Hyprland
@@ -1699,9 +1698,9 @@ ingenerated/modules/traveldroid/desktop/stylix.nixgenerated/modules/traveldroid/desktop/stylix.nix{ lib, config, pkgs, flakeRoot, stylix, ... }:
@@ -1788,9 +1787,9 @@ in
generated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/wallpaper.nixSetting up wallpaper engine + wallpaper gui
@@ -1889,9 +1888,9 @@ ingenerated/modules/traveldroid/desktop/waybar.nixgenerated/modules/traveldroid/desktop/waybar.nixThis file installs and configures waybar
@@ -1937,9 +1936,9 @@ ingenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/wayland.nix{ lib, config, pkgs, ... }:
@@ -1969,9 +1968,9 @@ in
generated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/desktop/xdg.nixThis sets the XDG implementation
@@ -2042,13 +2041,13 @@ ingenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/audio.nix{ lib, config, pkgs, ... }:
@@ -2067,9 +2066,9 @@ in
generated/modules/traveldroid/system/avahi.nixgenerated/modules/traveldroid/system/avahi.nixAvahi helps discovering services
@@ -2089,9 +2088,9 @@ Avahi helps discovering servicesgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/bluetooth.nixInstalling Bluetooth services and supporting aps
@@ -2118,9 +2117,9 @@ ingenerated/modules/traveldroid/system/copy_scripts.nixgenerated/modules/traveldroid/system/copy_scripts.nixThis copies any scripts from generated.config/scripts to ~/.config/scripts and makes any .sh files executable.
@@ -2161,9 +2160,9 @@ ingenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/dbus.nixThis sets the dbus implementation
@@ -2190,9 +2189,9 @@ This sets the dbus implementationgenerated/modules/traveldroid/system/firewall.nixgenerated/modules/traveldroid/system/firewall.nixThis sets the firewall.
@@ -2273,9 +2272,9 @@ This sets the firewall.generated/modules/traveldroid/system/hypridle.nixgenerated/modules/traveldroid/system/hypridle.nixThis installs hypridle
@@ -2331,9 +2330,9 @@ ingenerated/modules/traveldroid/system/hyprlock.nixgenerated/modules/traveldroid/system/hyprlock.nixThis installs hyprlock
@@ -2390,9 +2389,9 @@ ingenerated/modules/traveldroid/system/gnome-keyring.nixgenerated/modules/traveldroid/system/gnome-keyring.nixThis sets the dbus implementation
@@ -2440,9 +2439,9 @@ This sets the dbus implementationgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/login-tuigreet.nixThis sets up tuigreeter which is not fancy but imho fits the aesthetic I am aiming for
@@ -2489,9 +2488,9 @@ ingenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/networking.nixThis sets the networking.
@@ -2540,9 +2539,9 @@ This sets the networking.generated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/nix.nix{ lib, config, ... }:
{
@@ -2565,9 +2564,9 @@ This sets the networking.
generated/modules/traveldroid/system/printing.nixgenerated/modules/traveldroid/system/printing.nixThis sets the dbus implementation
@@ -2591,9 +2590,9 @@ This sets the dbus implementationgenerated/modules/traveldroid/system/quickshell.nixgenerated/modules/traveldroid/system/quickshell.nixThis sets the quickshell implementation
@@ -2639,9 +2638,9 @@ ingenerated/modules/traveldroid/system/swaync.nixgenerated/modules/traveldroid/system/swaync.nixThis sets the dbus implementation
@@ -2690,13 +2689,13 @@ ingenerated/users/generated/users/This is the default user, just search and replace henrov another name if you want to change
@@ -2758,9 +2757,9 @@ ingenerated/.config/emacs/early-init.elgenerated/.config/emacs/early-init.elThis contaions emacs
@@ -2861,9 +2860,9 @@ package-archive-priorities '(("gnu" . 99)generated/.config/emacs/init.elgenerated/.config/emacs/init.elThis contaions emacs
@@ -3273,9 +3272,9 @@ the top of the file."generated/.config/hypr/animations.confgenerated/.config/hypr/animations.confThese are config files for .config/hypr
@@ -3294,9 +3293,9 @@ These are config files for .config/hyprgenerated/.config/hypr/behaviour.confgenerated/.config/hypr/behaviour.confThese are config files for .config/hypr
@@ -3318,9 +3317,9 @@ input {generated/.config/hypr/bindings.confgenerated/.config/hypr/bindings.confThese are config files for .config/hypr
@@ -3497,9 +3496,9 @@ bind = $mainMod, U, exec, qs -c updatergenerated/.config/hypr/exec-once.confgenerated/.config/hypr/exec-once.confThese are config files for .config/hypr
@@ -3520,9 +3519,9 @@ exec-once = waybargenerated/.config/hypr/hypridle.confgenerated/.config/hypr/hypridle.confThese are config files for .config/hypr
@@ -3553,9 +3552,9 @@ listener {generated/.config/hypr/hyprlock.confgenerated/.config/hypr/hyprlock.confThese are config files for .config/hypr
@@ -3585,9 +3584,9 @@ input-field {generated/.config/hypr/hyprland.confgenerated/.config/hypr/hyprland.confThese are config files for .config/hypr
@@ -3606,9 +3605,9 @@ source = ./workspace-rules.confgenerated/.config/hypr/layer-rules.confgenerated/.config/hypr/layer-rules.confThese are config files for .config/hypr
@@ -3621,9 +3620,9 @@ layerrule = xray 1, match:namespace swaync-control-centergenerated/.config/hypr/layout.confgenerated/.config/hypr/layout.confThese settings control Hyprland config
@@ -3638,9 +3637,9 @@ scrolling {generated/.config/hypr/monitor-rules.confgenerated/.config/hypr/monitor-rules.confThese are config files for .config/hypr
@@ -3651,9 +3650,9 @@ monitor = eDP-1, preferred, auto-left, 1.5generated/.config/hypr/theming.confgenerated/.config/hypr/theming.confThese are config files for .config/hypr
@@ -3719,9 +3718,9 @@ misc {generated/.config/hypr/window-rules.confgenerated/.config/hypr/window-rules.confThese are config files for .config/hypr
@@ -3812,9 +3811,9 @@ windowrule {generated/.config/hypr/workspace-rules.confgenerated/.config/hypr/workspace-rules.confThese setttings configure rules for workspaces
@@ -3829,9 +3828,9 @@ workspace = 6, monitor:DP-1 #, layout:dwindlegenerated/.config/quickshell/media/shell.qmlgenerated/.config/quickshell/media/shell.qmloffers a audio widget
@@ -4225,9 +4224,9 @@ ShellRoot {generated/.config/quickshell/powermenu/shell.qmlgenerated/.config/quickshell/powermenu/shell.qmlProvides a powermenu
@@ -4375,60 +4374,284 @@ ShellRoot {generated/.config/quickshell/updater/shell.qmlgenerated/.config/quickshell/updater/shell.qmlUpdates the system
import QtQuick
-import QtQuick.Controls
+// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+import Quickshell
+import Quickshell.Io
+import QtQuick
+import QtQuick.Layouts
-Window {
- width: 500
- height: 200
- visible: true
- title: "System Updater"
+ShellRoot {
+ QtObject {
+ id: colors
+ readonly property color base: "#1e1e2e"
+ readonly property color surface0: "#313244"
+ readonly property color surface1: "#45475a"
+ readonly property color text: "#cdd6f4"
+ readonly property color subtext0: "#a6adc8"
+ readonly property color green: "#a6e3a1"
+ readonly property color blue: "#89b4fa"
+ readonly property color red: "#f38ba8"
+ readonly property color yellow: "#f9e2af"
+ readonly property color peach: "#fab387"
+ }
- property int progress: 0
- property string status: "Waiting..."
+ QtObject {
+ id: state
+ property int step: 0
+ property bool running: false
+ property bool failed: false
+ property string log: ""
- Timer {
- interval: 300
- running: true
- repeat: true
+ readonly property var steps: [
+ { label: "Updating flake.lock", cmd: ["nix", "flake", "update"], cwd: "/home/henrov/Repos/nixos/Droidnix" },
+ { label: "Updating Flatpaks", cmd: ["flatpak", "update", "-y"], cwd: "/home/henrov" },
+ { label: "Staging changes", cmd: ["git", "add", "."], cwd: "/home/henrov/Repos/nixos/Droidnix" },
+ { label: "Committing changes", cmd: ["git", "commit", "-m", "Updated system"], cwd: "/home/henrov/Repos/nixos/Droidnix" },
+ { label: "Pushing to remote", cmd: ["git", "push"], cwd: "/home/henrov/Repos/nixos/Droidnix" },
+ { label: "Rebuilding NixOS", cmd: ["sudo", "nixos-rebuild", "switch", "--flake", ".#traveldroid"], cwd: "/home/henrov/Repos/nixos/Droidnix" },
+ { label: "Reloading Hyprland", cmd: ["hyprctl", "reload"], cwd: "/home/henrov" },
+ ]
+ }
- onTriggered: {
- let file = "/tmp/nixos-updater-status"
+ function runStep(index) {
+ if (index >= state.steps.length) {
+ state.running = false
+ state.step = state.steps.length
+ return
+ }
+ state.step = index
+ state.running = true
+ stepProc.command = state.steps[index].cmd
+ stepProc.workingDirectory = state.steps[index].cwd
+ stepProc.running = true
+ }
- let xhr = new XMLHttpRequest()
- xhr.open("GET", "file://" + file)
- xhr.onreadystatechange = function() {
- if (xhr.readyState === XMLHttpRequest.DONE) {
- let parts = xhr.responseText.trim().split("|")
+ Process {
+ id: stepProc
- if (parts.length === 2) {
- progress = parseInt(parts[0])
- status = parts[1]
- }
- }
+ stdout: StdioCollector {
+ onStreamFinished: {
+ state.log = text.split("\n").slice(-6).join("\n")
+ }
+ }
+
+ stderr: StdioCollector {
+ onStreamFinished: {
+ if (text.trim() !== "")
+ state.log = text.split("\n").slice(-6).join("\n")
+ }
+ }
+
+ onExited: (code) => {
+ if (code !== 0 && state.step !== 3) {
+ // step 3 is git commit — may exit 1 if nothing to commit, that's fine
+ state.failed = true
+ state.running = false
+ } else {
+ runStep(state.step + 1)
}
- xhr.send()
}
}
- Column {
- anchors.centerIn: parent
- spacing: 10
+ FloatingWindow {
+ id: root
+ title: "quickshell-updater"
+ visible: true
+ width: 520
+ height: contentCol.implicitHeight + 32
+ color: "transparent"
- Text { text: status }
+ Shortcut {
+ sequence: "Escape"
+ onActivated: Qt.quit()
+ }
- ProgressBar {
- from: 0
- to: 100
- value: progress
- width: 300
+ // Gradient border
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: -2
+ radius: 18
+ z: -1
+ gradient: Gradient {
+ orientation: Gradient.Horizontal
+ GradientStop { position: 0.0; color: colors.blue }
+ GradientStop { position: 1.0; color: colors.green }
+ }
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ radius: 16
+ color: colors.base
+
+ ColumnLayout {
+ id: contentCol
+ anchors {
+ top: parent.top
+ left: parent.left
+ right: parent.right
+ margins: 20
+ }
+ spacing: 12
+
+ // Title
+ Text {
+ text: " System Update"
+ color: colors.text
+ font.pixelSize: 15
+ font.bold: true
+ Layout.topMargin: 4
+ }
+
+ // Steps list
+ Repeater {
+ model: state.steps.length
+
+ delegate: RowLayout {
+ spacing: 10
+ Layout.fillWidth: true
+
+ // Icon
+ Text {
+ font.pixelSize: 14
+ text: {
+ if (state.failed && index === state.step) return "✗"
+ if (index < state.step || (!state.running && index === state.step)) return "✓"
+ if (index === state.step && state.running) return "…"
+ return "○"
+ }
+ color: {
+ if (state.failed && index === state.step) return colors.red
+ if (index < state.step || (!state.running && !state.failed && index === state.step)) return colors.green
+ if (index === state.step && state.running) return colors.yellow
+ return colors.surface1
+ }
+ }
+
+ Text {
+ text: state.steps[index].label
+ font.pixelSize: 13
+ color: {
+ if (state.failed && index === state.step) return colors.red
+ if (index < state.step) return colors.subtext0
+ if (index === state.step) return colors.text
+ return colors.surface1
+ }
+ }
+
+ // Spinner for active step
+ Text {
+ visible: index === state.step && state.running
+ text: "⠋"
+ color: colors.blue
+ font.pixelSize: 13
+
+ RotationAnimation on rotation {
+ running: index === state.step && state.running
+ from: 0; to: 360
+ duration: 1000
+ loops: Animation.Infinite
+ }
+ }
+ }
+ }
+
+ // Log output
+ Rectangle {
+ Layout.fillWidth: true
+ height: 80
+ radius: 8
+ color: colors.surface0
+ visible: state.log !== ""
+
+ Text {
+ anchors {
+ fill: parent
+ margins: 8
+ }
+ text: state.log
+ color: colors.subtext0
+ font.pixelSize: 11
+ font.family: "monospace"
+ wrapMode: Text.WrapAnywhere
+ elide: Text.ElideLeft
+ verticalAlignment: Text.AlignBottom
+ }
+ }
+
+ // Status / close
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.bottomMargin: 4
+
+ Text {
+ text: {
+ if (state.failed) return "✗ Failed at: " + state.steps[state.step].label
+ if (state.step === state.steps.length) return "✓ Done!"
+ if (state.running) return "Running…"
+ return "Press Start"
+ }
+ color: {
+ if (state.failed) return colors.red
+ if (state.step === state.steps.length) return colors.green
+ return colors.subtext0
+ }
+ font.pixelSize: 12
+ }
+
+ Item { Layout.fillWidth: true }
+
+ // Start button
+ Rectangle {
+ visible: !state.running && state.step === 0
+ width: 80; height: 28
+ radius: 14
+ gradient: Gradient {
+ orientation: Gradient.Horizontal
+ GradientStop { position: 0.0; color: colors.blue }
+ GradientStop { position: 1.0; color: colors.green }
+ }
+ Text {
+ anchors.centerIn: parent
+ text: "Start"
+ color: colors.base
+ font.pixelSize: 12
+ font.bold: true
+ }
+ MouseArea {
+ anchors.fill: parent
+ cursorShape: Qt.PointingHandCursor
+ onClicked: runStep(0)
+ }
+ }
+
+ // Close button
+ Rectangle {
+ visible: !state.running && state.step > 0
+ width: 80; height: 28
+ radius: 14
+ color: colors.surface1
+ Text {
+ anchors.centerIn: parent
+ text: "Close"
+ color: colors.text
+ font.pixelSize: 12
+ }
+ MouseArea {
+ anchors.fill: parent
+ cursorShape: Qt.PointingHandCursor
+ onClicked: Qt.quit()
+ }
+ }
+ }
+ }
}
}
}
@@ -4436,9 +4659,9 @@ Window {
generated/.config/quickshell/layoutswitcher/shell.qmlgenerated/.config/quickshell/layoutswitcher/shell.qmlProvides a layout menu
@@ -4585,9 +4808,9 @@ ShellRoot {generated/.config/waybar/scripts/batterywarn.shgenerated/.config/waybar/scripts/batterywarn.shProviding an media
@@ -4604,9 +4827,9 @@ figenerated/.config/waybar/scripts/media.shgenerated/.config/waybar/scripts/media.shProviding an media
@@ -4705,9 +4928,9 @@ jq -c -n \generated/.config/scripts/numlock-check.shgenerated/.config/scripts/numlock-check.shCount keyboards and enable numlock if more then 1, else disable
@@ -4729,9 +4952,9 @@ figenerated/.config/scripts/power.shgenerated/.config/scripts/power.shEnables a terminal power menu
@@ -4786,42 +5009,9 @@ maingenerated/.config/scripts/update-engine.sh-A file containing color variables -
-
-STATUS_FILE="/tmp/nixos-updater-status"
-
-echo "0|Starting" > "$STATUS_FILE"
-
-update_step() {
- echo "$1|$2" > "$STATUS_FILE"
-}
-
-update_step 10 "Fixing ownership"
-sudo chown -R "$USER":"wheel" "$REPO"
-
-update_step 30 "Updating flake"
-nix flake update
-
-update_step 60 "Rebuilding system"
-sudo nixos-rebuild switch --flake ".#$HOSTNAME"
-
-update_step 90 "Updating Flatpaks"
-flatpak update -y
-
-update_step 100 "Done"
-
-generated/.config/wofi/scripts/wofi-launcher.shgenerated/.config/wofi/scripts/wofi-launcher.shProviding an media
@@ -4836,9 +5026,9 @@ Providing an mediagenerated/.config/shared/colors.cssgenerated/.config/shared/colors.cssA file containing color variables
@@ -4879,9 +5069,9 @@ A file containing color variablesgenerated/.config/starship.tomlgenerated/.config/starship.tomlThese are config files for Starship
@@ -5169,9 +5359,9 @@ crust = "#181926"generated/.config/stylix/stylix.confgenerated/.config/stylix/stylix.confThese are config files for .config/stylix
@@ -5208,9 +5398,9 @@ icons = {generated/.config/stylix/palette.jsongenerated/.config/stylix/palette.jsonThese are config files for .config/stylix
@@ -5240,9 +5430,9 @@ These are config files for .config/stylixgenerated/.config/stylix/palette.htmlgenerated/.config/stylix/palette.htmlThese are config files for .config/stylix
@@ -5319,9 +5509,9 @@ These are config files for .config/stylixgenerated/.config/swaync/config.jsongenerated/.config/swaync/config.jsonThese are config files for waybar
@@ -5382,9 +5572,9 @@ These are config files for waybargenerated/.config/swaync/style.cssgenerated/.config/swaync/style.cssThese are config files for waybar
@@ -5577,9 +5767,9 @@ These are config files for waybargenerated/.config/waybar/config.jsoncgenerated/.config/waybar/config.jsoncThese are config files for waybar
@@ -5916,9 +6106,9 @@ These are config files for waybargenerated/.config/waybar/style-dark.cssgenerated/.config/waybar/style-dark.cssThis file contains all css for waybar
@@ -6178,9 +6368,9 @@ label#custom-windows:not(.active) {generated/.config/waybar/scripts/bluetooth-status.shgenerated/.config/waybar/scripts/bluetooth-status.shThese are config files for waybar
@@ -6205,9 +6395,9 @@ printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip"generated/.config/waybar/scripts/hypr-workspaces.shgenerated/.config/waybar/scripts/hypr-workspaces.shThese are config files for waybar
@@ -6249,9 +6439,9 @@ jq -c -n \generated/.config/waybar/scripts/hypr-workspacesmenu.shgenerated/.config/waybar/scripts/hypr-workspacesmenu.shThese are config files for waybar
@@ -6273,9 +6463,9 @@ hyprctl dispatch focuswindow address:"$addr"generated/.config/waybar/scripts/kdeconnect-status.shgenerated/.config/waybar/scripts/kdeconnect-status.shThese are config files for waybar
@@ -6299,9 +6489,9 @@ figenerated/.config/waypaper/config.inigenerated/.config/waypaper/config.iniThese are config files for waypaper
@@ -6338,9 +6528,9 @@ keybindings = ~/.config/waypaper/keybindings.inigenerated/.config/waypaper/config.inigenerated/.config/waypaper/config.iniThese are config files for .config/waypaper
@@ -6376,9 +6566,9 @@ keybindings = ~/.config/waypaper/keybindings.inigenerated/.config/wofi/configgenerated/.config/wofi/configThese are config files for .config/wofi
@@ -6405,9 +6595,9 @@ prompt = > ...generated/.config/wofi/style.cssgenerated/.config/wofi/style.cssThis is the default layout for wofi
@@ -6503,9 +6693,9 @@ This is the default layout for wofigenerated/.config/zed/settings.jsongenerated/.config/zed/settings.jsonThese are config files for Zed editor
@@ -6543,9 +6733,9 @@ These are config files for Zed editorgenerated/.config/zsh/.zshrcgenerated/.config/zsh/.zshrcThis sets up the zsh in the terminal
@@ -6582,7 +6772,7 @@ cd() {