diff --git a/flake/dev/flake.lock b/flake/dev/flake.lock index 3149844f..22043fee 100644 --- a/flake/dev/flake.lock +++ b/flake/dev/flake.lock @@ -154,6 +154,26 @@ "type": "github" } }, + "noctalia-shell": { + "inputs": { + "nixpkgs": [ + "dev-nixpkgs" + ] + }, + "locked": { + "lastModified": 1765201259, + "narHash": "sha256-6btxUos1OY0LSk9hBVnLRcklLGBKCA2SCq9WkoLa91E=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "c2b245703021e65a761a7de06b3b6b91d609a6c5", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "type": "github" + } + }, "nvf": { "inputs": { "flake-compat": [], @@ -191,6 +211,7 @@ "git-hooks": "git-hooks", "home-manager": "home-manager", "nixvim": "nixvim", + "noctalia-shell": "noctalia-shell", "nvf": "nvf", "spicetify-nix": "spicetify-nix", "treefmt-nix": "treefmt-nix", diff --git a/flake/dev/flake.nix b/flake/dev/flake.nix index 555182df..c85db98a 100644 --- a/flake/dev/flake.nix +++ b/flake/dev/flake.nix @@ -156,6 +156,11 @@ }; }; + noctalia-shell = { + url = "github:noctalia-dev/noctalia-shell"; + inputs.nixpkgs.follows = "dev-nixpkgs"; + }; + nvf = { url = "github:NotAShelf/nvf"; inputs = { diff --git a/generated/all-maintainers.nix b/generated/all-maintainers.nix index af748fb1..50a83380 100644 --- a/generated/all-maintainers.nix +++ b/generated/all-maintainers.nix @@ -203,6 +203,12 @@ githubId = 45952970; name = "repparw"; }; + rwxae = { + email = "wardxela@gmail.com"; + github = "rwxae"; + githubId = 63157919; + name = "Alexander"; + }; skiletro = { email = "git@skilet.ro"; github = "skiletro"; diff --git a/modules/noctalia-shell/hm.nix b/modules/noctalia-shell/hm.nix new file mode 100644 index 00000000..006cfe6c --- /dev/null +++ b/modules/noctalia-shell/hm.nix @@ -0,0 +1,69 @@ +{ + mkTarget, + lib, + options, + ... +}: +mkTarget { + config = lib.optionals (options.programs ? noctalia-shell) [ + ( + { colors }: + { + programs.noctalia-shell = { + colors = with colors.withHashtag; { + mPrimary = base05; + mOnPrimary = base00; + mSecondary = base05; + mOnSecondary = base00; + mTertiary = base04; + mOnTertiary = base00; + mError = base08; + mOnError = base00; + mSurface = base00; + mOnSurface = base05; + mHover = base04; + mOnHover = base00; + mSurfaceVariant = base01; + mOnSurfaceVariant = base04; + mOutline = base02; + mShadow = base00; + }; + }; + } + ) + ( + { opacity }: + { + programs.noctalia-shell = { + settings = { + bar.backgroundOpacity = opacity.desktop; + bar.capsuleOpacity = opacity.desktop; + ui.panelBackgroundOpacity = opacity.desktop; + dock.backgroundOpacity = opacity.desktop; + osd.backgroundOpacity = opacity.popups; + notifications.backgroundOpacity = opacity.popups; + }; + }; + } + ) + ( + { fonts }: + { + programs.noctalia-shell = { + settings = { + ui.fontDefault = fonts.sansSerif.name; + ui.fontFixed = fonts.monospace.name; + }; + }; + } + ) + ( + { image }: + { + home.file.".cache/noctalia/wallpapers.json" = { + text = builtins.toJSON { defaultWallpaper = image; }; + }; + } + ) + ]; +} diff --git a/modules/noctalia-shell/meta.nix b/modules/noctalia-shell/meta.nix new file mode 100644 index 00000000..bf44ed74 --- /dev/null +++ b/modules/noctalia-shell/meta.nix @@ -0,0 +1,6 @@ +{ lib, ... }: +{ + name = "Noctalia shell"; + homepage = "https://docs.noctalia.dev"; + maintainers = [ lib.maintainers.rwxae ]; +} diff --git a/modules/noctalia-shell/testbeds/noctalia-shell.nix b/modules/noctalia-shell/testbeds/noctalia-shell.nix new file mode 100644 index 00000000..970c47bc --- /dev/null +++ b/modules/noctalia-shell/testbeds/noctalia-shell.nix @@ -0,0 +1,11 @@ +{ lib, ... }: +{ + stylix.testbed.ui = { + graphicalEnvironment = "hyprland"; + command.text = "noctalia-shell --no-duplicate"; + }; + + home-manager.sharedModules = lib.singleton { + programs.noctalia-shell.enable = true; + }; +} diff --git a/stylix/maintainers.nix b/stylix/maintainers.nix index aa4fa235..c9c12d46 100644 --- a/stylix/maintainers.nix +++ b/stylix/maintainers.nix @@ -65,6 +65,12 @@ github = "osipog"; githubId = 87434959; }; + rwxae = { + email = "wardxela@gmail.com"; + name = "Alexander"; + github = "rwxae"; + githubId = 63157919; + }; skiletro = { email = "git@skilet.ro"; name = "jamie"; diff --git a/stylix/testbed/default.nix b/stylix/testbed/default.nix index 2ea28306..510f0109 100644 --- a/stylix/testbed/default.nix +++ b/stylix/testbed/default.nix @@ -43,6 +43,10 @@ let ; }; + noctalia-shell.home-manager.sharedModules = [ + inputs.noctalia-shell.homeModules.default + ]; + nvf = inputs.nvf.nixosModules.default; vicinae.home-manager.sharedModules = [