diff --git a/modules/gedit/hm.nix b/modules/gedit/hm.nix index 1a2ec264..b31c47ec 100644 --- a/modules/gedit/hm.nix +++ b/modules/gedit/hm.nix @@ -8,7 +8,7 @@ mkTarget { { xdg.dataFile = { "gedit/styles/stylix.xml".source = colors { - template = ./template.xml.mustache; + template = ../gtksourceview/template.xml.mustache; extension = ".xml"; }; }; diff --git a/modules/gnome-text-editor/meta.nix b/modules/gnome-text-editor/meta.nix index eae4f5de..cdabbf04 100644 --- a/modules/gnome-text-editor/meta.nix +++ b/modules/gnome-text-editor/meta.nix @@ -1,5 +1,6 @@ +{ lib, ... }: { name = "GNOME Text Editor"; homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor"; - maintainers = [ ]; + maintainers = [ lib.maintainers.bricked ]; } diff --git a/modules/gnome-text-editor/overlay.nix b/modules/gnome-text-editor/overlay.nix deleted file mode 100644 index 1d3bca53..00000000 --- a/modules/gnome-text-editor/overlay.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - lib, - config, - ... -}: -let - style = config.lib.stylix.colors { - template = ../gedit/template.xml.mustache; - extension = ".xml"; - }; -in -{ - overlay = - _: prev: - lib.optionalAttrs - ( - config.stylix.enable && config.stylix.targets.gnome-text-editor.enable or false - ) - { - gnome-text-editor = prev.gnome-text-editor.overrideAttrs (oldAttrs: { - postFixup = '' - ${oldAttrs.postFixup or ""} - mkdir -p $out/share/gtksourceview-5/styles - cp ${style} $out/share/gtksourceview-5/styles/stylix.xml - ''; - }); - }; -} diff --git a/modules/gtksourceview/hm.nix b/modules/gtksourceview/hm.nix new file mode 100644 index 00000000..5aa58b62 --- /dev/null +++ b/modules/gtksourceview/hm.nix @@ -0,0 +1,28 @@ +{ mkTarget, lib, ... }: +mkTarget { + name = "gtksourceview"; + humanName = "GTKSourceView"; + + configElements = + { colors, ... }: + { + xdg.dataFile = builtins.listToAttrs ( + map + ( + version: + lib.nameValuePair "gtksourceview-${version}/styles/stylix.xml" { + source = colors { + template = ./template.xml.mustache; + extension = ".xml"; + }; + } + ) + [ + "2.0" + "3.0" + "4" + "5" + ] + ); + }; +} diff --git a/modules/gtksourceview/meta.nix b/modules/gtksourceview/meta.nix new file mode 100644 index 00000000..3d860e9d --- /dev/null +++ b/modules/gtksourceview/meta.nix @@ -0,0 +1,5 @@ +{ lib, ... }: +{ + maintainers = [ lib.maintainers.bricked ]; + name = "GTKSourceView"; +} diff --git a/modules/gtksourceview/nixos.nix b/modules/gtksourceview/nixos.nix new file mode 100644 index 00000000..3e59689c --- /dev/null +++ b/modules/gtksourceview/nixos.nix @@ -0,0 +1,8 @@ +{ mkTarget, ... }: + +mkTarget { + name = "gtksourceview"; + humanName = "GTKSourceView"; + + # Used to enable overlay. +} diff --git a/modules/gtksourceview/overlay.nix b/modules/gtksourceview/overlay.nix new file mode 100644 index 00000000..c80adef2 --- /dev/null +++ b/modules/gtksourceview/overlay.nix @@ -0,0 +1,37 @@ +{ config, lib, ... }: +let + inherit (lib) optionalAttrs; + inherit (config.lib.stylix) colors; + + style = colors { + template = ./template.xml.mustache; + extension = ".xml"; + }; + + attrsOverride = version: oldAttrs: { + postFixup = '' + ${oldAttrs.postFixup or ""} + styles_dir="$out/share/gtksourceview-${version}/styles" + mkdir --parents "$styles_dir" + cp ${style} "$styles_dir/stylix.xml" + ''; + }; +in +{ + overlay = + _final: prev: + optionalAttrs + ( + config.stylix.enable + && config.stylix.targets ? gtksourceview + && config.stylix.targets.gtksourceview.enable + ) + { + gnome2.gtksourceview = prev.gnome2.gtksourceview.overrideAttrs ( + attrsOverride "2.0" + ); + gtksourceview = prev.gtksourceview.overrideAttrs (attrsOverride "3.0"); + gtksourceview4 = prev.gtksourceview4.overrideAttrs (attrsOverride "4"); + gtksourceview5 = prev.gtksourceview5.overrideAttrs (attrsOverride "5"); + }; +} diff --git a/modules/gedit/template.xml.mustache b/modules/gtksourceview/template.xml.mustache similarity index 100% rename from modules/gedit/template.xml.mustache rename to modules/gtksourceview/template.xml.mustache