From 32c57b06711ea6e11788ff931bd5a5e31d1a413b Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Sun, 7 Dec 2025 15:02:21 +0100 Subject: [PATCH] feat: switch frow waybar to quickshell and caelestia --- flake.lock | 86 +++++++++++++---------------- flake.nix | 14 +++-- users/modules/desktop/caelestia.nix | 72 ++++++++++++++++++++++++ users/modules/desktop/default.nix | 1 + users/modules/desktop/hyprland.nix | 22 ++++---- users/phundrak/home.nix | 2 +- users/phundrak/packages.nix | 1 - 7 files changed, 135 insertions(+), 63 deletions(-) create mode 100644 users/modules/desktop/caelestia.nix diff --git a/flake.lock b/flake.lock index ac7533b..e300221 100644 --- a/flake.lock +++ b/flake.lock @@ -33,24 +33,49 @@ "type": "github" } }, - "claude-desktop": { + "caelestia-cli": { "inputs": { - "flake-utils": "flake-utils", + "caelestia-shell": [ + "caelestia-shell" + ], "nixpkgs": [ + "caelestia-shell", "nixpkgs" ] }, "locked": { - "lastModified": 1764098187, - "narHash": "sha256-H6JjWXhKqxZ8QLMoqndZx9e5x0Sv5AiipSmqvIxIbgo=", - "owner": "k3d3", - "repo": "claude-desktop-linux-flake", - "rev": "b2b040cb68231d2118906507d9cc8fd181ca6308", + "lastModified": 1766195958, + "narHash": "sha256-YGawjW7RDzzOEiovrRGyRoXfjISbgLz4BVN9ZMb8LEc=", + "owner": "caelestia-dots", + "repo": "cli", + "rev": "8c83ae1e6a60de7d496d346bf3623f789a9f53e3", "type": "github" }, "original": { - "owner": "k3d3", - "repo": "claude-desktop-linux-flake", + "owner": "caelestia-dots", + "repo": "cli", + "type": "github" + } + }, + "caelestia-shell": { + "inputs": { + "caelestia-cli": "caelestia-cli", + "nixpkgs": [ + "nixpkgs" + ], + "quickshell": "quickshell" + }, + "locked": { + "lastModified": 1766280311, + "narHash": "sha256-Ty4GT6EaQFaL9E/dKcJB1Q30ByGkxXV6U1eu8+PS5Dc=", + "owner": "caelestia-dots", + "repo": "shell", + "rev": "66e509ae488b2c0468f2c803fd34c2625ca725dc", + "type": "github" + }, + "original": { + "owner": "caelestia-dots", + "repo": "shell", "type": "github" } }, @@ -134,24 +159,6 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "git-hooks": { "inputs": { "flake-compat": [ @@ -314,7 +321,7 @@ }, "pumo-system-info": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ], @@ -337,6 +344,7 @@ "quickshell": { "inputs": { "nixpkgs": [ + "caelestia-shell", "nixpkgs" ] }, @@ -347,22 +355,21 @@ "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460", "revCount": 713, "type": "git", - "url": "https://git.outfoxxed.me/quickshell/quickshell" + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" }, "original": { "type": "git", - "url": "https://git.outfoxxed.me/quickshell/quickshell" + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" } }, "root": { "inputs": { - "claude-desktop": "claude-desktop", + "caelestia-shell": "caelestia-shell", "devenv": "devenv", "home-manager": "home-manager", "nix-index-database": "nix-index-database", "nixpkgs": "nixpkgs", "pumo-system-info": "pumo-system-info", - "quickshell": "quickshell", "sops-nix": "sops-nix", "srvos": "srvos", "zen-browser": "zen-browser" @@ -442,21 +449,6 @@ "type": "github" } }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "zen-browser": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 9517f1d..a8aa69f 100644 --- a/flake.nix +++ b/flake.nix @@ -24,8 +24,8 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - quickshell = { - url = "git+https://git.outfoxxed.me/quickshell/quickshell"; + caelestia-shell = { + url = "github:caelestia-dots/shell"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -100,11 +100,17 @@ }; "phundrak@gampo" = home-manager.lib.homeManagerConfiguration { inherit extraSpecialArgs pkgs; - modules = withUserModules ./users/phundrak/host/gampo.nix; + modules = withUserModules [ + inputs.caelestia-shell.homeManagerModules.default + ./users/phundrak/host/marpa.nix + ]; }; "phundrak@marpa" = home-manager.lib.homeManagerConfiguration { inherit extraSpecialArgs pkgs; - modules = withUserModules ./users/phundrak/host/marpa.nix; + modules = withUserModules [ + inputs.caelestia-shell.homeManagerModules.default + ./users/phundrak/host/marpa.nix + ]; }; "phundrak@NaroMk3" = home-manager.lib.homeManagerConfiguration { inherit extraSpecialArgs pkgs; diff --git a/users/modules/desktop/caelestia.nix b/users/modules/desktop/caelestia.nix new file mode 100644 index 0000000..be31f6c --- /dev/null +++ b/users/modules/desktop/caelestia.nix @@ -0,0 +1,72 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.home.desktop.caelestia; +in { + options.home.desktop.caelestia.enable = mkEnableOption "Enables Caelestia Shell"; + config.programs.caelestia = mkIf cfg.enable { + inherit (cfg) enable; + systemd = { + enable = true; + target = "graphical-session.target"; + environment = [ + "QT3_QPA_PLATFORMTHEME=gtk3" + ]; + }; + settings = { + paths.wallpaperDir = "~/Pictures/Wallpapers/nord"; + general = { + apps = { + terminal = ["kitty"]; + audio = ["pavucontrol"]; + playback = ["mpv"]; + explorer = ["${pkgs.nemo-with-extensions}/bin/nemo"]; + }; + idle = { + timeouts = [ + { + timeout = 300; + idleAction = "lock"; + } + ]; + }; + }; + background = { + desktopClock.enabled = true; + visualiser.enabled = true; + }; + dashboard = { + enabled = true; + showOnHover = true; + }; + launcher = { + enabled = true; + showOnHover = true; + useFuzzy = { + apps = true; + schemes = true; + wallpapers = true; + }; + }; + bar = { + status = { + showAudio = true; + showKbLayout = false; + }; + tray.compact = true; + }; + services.gpuType = "amd"; + session.commands = { + logout = ["uwsm" "stop"]; + shutdown = ["systemctl" "poweroff"]; + hibernate = ["systemctl" "hibernate"]; + reboot = ["systemctl" "reboot"]; + }; + }; + cli.enable = true; + }; +} diff --git a/users/modules/desktop/default.nix b/users/modules/desktop/default.nix index dd28fda..6942e5f 100644 --- a/users/modules/desktop/default.nix +++ b/users/modules/desktop/default.nix @@ -7,6 +7,7 @@ with lib; let cfg = config.home.desktop; in { imports = [ + ./caelestia.nix ./eww.nix ./hyprland.nix ./kdeconnect.nix diff --git a/users/modules/desktop/hyprland.nix b/users/modules/desktop/hyprland.nix index 6652227..faab3f5 100644 --- a/users/modules/desktop/hyprland.nix +++ b/users/modules/desktop/hyprland.nix @@ -7,6 +7,7 @@ with lib; let cfg = config.home.desktop.hyprland; laptops = ["gampo"]; + caelestiaEnabled = config.home.desktop.caelestia.enable; in { imports = [ ./swaync.nix @@ -34,16 +35,16 @@ in { config = mkIf cfg.enable { home.desktop = { - hyprpaper.enable = true; + hyprpaper.enable = mkDefault (! caelestiaEnabled); rofi.enable = mkDefault true; - swaync.enable = mkDefault true; + swaync.enable = mkDefault (! caelestiaEnabled); waybar = { - enable = mkDefault true; + enable = mkDefault (! caelestiaEnabled); battery = mkDefault (builtins.elem cfg.host laptops); }; wlsunset.enable = mkDefault true; }; - services.blueman-applet.enable = true; + services.blueman-applet.enable = ! caelestiaEnabled; wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; @@ -103,12 +104,13 @@ in { pseudotile = true; preserve_split = true; }; - exec-once = [ - "pactl load-module module-switch-on-connect" - "${pkgs.mpc}/bin/mpc stop" - "${pkgs.networkmanagerapplet}/bin/nm-applet" - "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" - ]; + exec-once = + [ + "pactl load-module module-switch-on-connect" + "${pkgs.mpc}/bin/mpc stop" + "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" + ] + ++ lib.lists.optional (! caelestiaEnabled) "${pkgs.networkmanagerapplet}/bin/nm-applet"; }; extraConfig = '' $left = c diff --git a/users/phundrak/home.nix b/users/phundrak/home.nix index be7834e..e58721b 100644 --- a/users/phundrak/home.nix +++ b/users/phundrak/home.nix @@ -64,7 +64,7 @@ LSP_USE_PLISTS = "true"; OPENAI_API_URL = "http://localhost:1234/"; }; - desktop.waybar.style = ./config/waybar/style.css; + desktop.caelestia.enable = true; dev = { ai.claude.enable = true; editors.emacs.package = emacsPackage; diff --git a/users/phundrak/packages.nix b/users/phundrak/packages.nix index 43e2e6a..8a54c0a 100644 --- a/users/phundrak/packages.nix +++ b/users/phundrak/packages.nix @@ -49,7 +49,6 @@ in { watchmate inputs.zen-browser.packages.${system}.default inputs.pumo-system-info.packages.${system}.default - inputs.quickshell.packages.${system}.default # Games atlauncher