diff --git a/flake.lock b/flake.lock index ad9d225..98d6c5f 100644 --- a/flake.lock +++ b/flake.lock @@ -1534,6 +1534,7 @@ "trash-d-src": "trash-d-src", "vimplugin-easytables-src": "vimplugin-easytables-src", "vimplugin-riscv-src": "vimplugin-riscv-src", + "wpaperd": "wpaperd", "xresources-theme-src": "xresources-theme-src" } }, @@ -1744,6 +1745,21 @@ "type": "github" } }, + "systems_7": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "touch-gestures-src": { "flake": false, "locked": { @@ -1847,6 +1863,27 @@ "type": "github" } }, + "wpaperd": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_7" + }, + "locked": { + "lastModified": 1713427743, + "narHash": "sha256-5riZ/6yjgsW++SUIyJP5rFG65tkjJKgtvDLIGaoiHN0=", + "owner": "danyspin97", + "repo": "wpaperd", + "rev": "ee109b08066ed9893cf898b24e16354f547475a4", + "type": "github" + }, + "original": { + "owner": "danyspin97", + "repo": "wpaperd", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ diff --git a/flake.nix b/flake.nix index 2ef0951..d1d463b 100644 --- a/flake.nix +++ b/flake.nix @@ -252,6 +252,14 @@ inputs.hyprland.follows = "hyprland"; }; + wpaperd = { + type = "github"; + owner = "danyspin97"; + repo = "wpaperd"; + + inputs.nixpkgs.follows = "nixpkgs"; + }; + solaar = { type = "github"; owner = "Svenum"; diff --git a/home/wpaperd.nix b/home/wpaperd.nix new file mode 100644 index 0000000..6d3b71f --- /dev/null +++ b/home/wpaperd.nix @@ -0,0 +1,17 @@ +{ + pkgs, + wpaperd, + ... +}: let + inherit (pkgs.writers) writeTOML; + wpaperdPkg = wpaperd.packages.${pkgs.system}.default; + wallpaper = "${pkgs.dracula-theme}/wallpapers/waves.png"; +in { + home.packages = [wpaperdPkg]; + + xdg.configFile."wpaperd/config.toml".source = writeTOML "config.toml" { + default = { + path = wallpaper; + }; + }; +} diff --git a/modules/ags/astal/ts/greetd/main.ts b/modules/ags/astal/ts/greetd/main.ts index ca1cefa..1eb5936 100644 --- a/modules/ags/astal/ts/greetd/main.ts +++ b/modules/ags/astal/ts/greetd/main.ts @@ -1,5 +1,5 @@ const { Box, Entry, Label, Window } = Widget; -const { execAsync, idle, readFileAsync } = Utils; +const { idle, readFileAsync } = Utils; const greetd = await Service.import('greetd'); @@ -11,10 +11,6 @@ const DEFAULT_NAME = 'matt'; import { StringObject } from 'types/@girs/gtk-4.0/gtk-4.0.cjs'; -// Run Wallpaper daemon here to not cause issues at startup -execAsync(['bash', '-c', - `swww init --no-cache && swww img -t none ${App.configDir}/.wallpaper`]).catch(print); - const parsePasswd = (fileContent: string) => { const splitUsers = fileContent.split('\n'); const parsedUsers = splitUsers.map((u) => { diff --git a/modules/greetd/astal.nix b/modules/greetd/astal.nix index 4019ddd..b5dde9d 100644 --- a/modules/greetd/astal.nix +++ b/modules/greetd/astal.nix @@ -17,38 +17,36 @@ in { imports = [ astal.homeManagerModules.default ../../home/theme + ../../home/wpaperd.nix ]; programs.astal.enable = true; - home = { - packages = [ - hyprland - pkgs.bun - pkgs.dart-sass - pkgs.swww - pkgs.gtk3 - pkgs.glib - ]; + home.packages = [ + hyprland + pkgs.bun + pkgs.dart-sass + pkgs.gtk3 + pkgs.glib + ]; - file = { - ".config/astal/.wallpaper".source = "${pkgs.dracula-theme}/wallpapers/waves.png"; - - ".config/astal" = { - source = ../ags/astal; - recursive = true; - }; - - ".config/astal/config.js".text = - /* - javascript - */ - '' - import { transpileTypeScript } from './js/utils.js'; - - export default (await transpileTypeScript('greeter')).default; - ''; + xdg.configFile = { + "astal" = { + source = ../ags/astal; + recursive = true; }; + + "astal/config.js".text = + /* + javascript + */ + '' + import { transpileTypeScript } from './js/utils.js'; + + Utils.execAsync('wpaperd -d'); + + export default (await transpileTypeScript('greeter')).default; + ''; }; }; } diff --git a/modules/hyprland/style.nix b/modules/hyprland/style.nix index 31bd408..568a1a1 100644 --- a/modules/hyprland/style.nix +++ b/modules/hyprland/style.nix @@ -1,13 +1,10 @@ -{ - config, - pkgs, - ... -}: let +{config, ...}: let inherit (config.vars) configDir; in { - imports = [../../home/theme]; - - home.packages = with pkgs; [swww]; + imports = [ + ../../home/theme + ../../home/wpaperd.nix + ]; wayland.windowManager.hyprland = { settings = { @@ -15,7 +12,7 @@ in { exec-once = [ "hyprctl setcursor Dracula-cursors 24" - "sleep 0.1 && swww init --no-cache && swww img -t none ${pkgs.dracula-theme}/wallpapers/waves.png" + "wpaperd -d" ]; windowrule = [