diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix index c2d400b4..299e99a9 100644 --- a/modules/home-manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -20,7 +20,7 @@ in config = lib.mkIf cfg.enable { programs.alacritty = { - settings = lib.importTOML "${sources.alacritty}/catppuccin-${cfg.flavor}.toml"; + settings.general.import = lib.mkBefore [ "${sources.alacritty}/catppuccin-${cfg.flavor}.toml" ]; }; }; } diff --git a/modules/home-manager/zed-editor.nix b/modules/home-manager/zed-editor.nix index a79920b6..6ca06064 100644 --- a/modules/home-manager/zed-editor.nix +++ b/modules/home-manager/zed-editor.nix @@ -2,30 +2,47 @@ { config, lib, ... }: let + inherit (config.catppuccin) sources; + cfg = config.catppuccin.zed; in { - options.catppuccin.zed = catppuccinLib.mkCatppuccinOption { name = "zed"; } // { - italics = lib.mkEnableOption "the italicized version of theme" // { - default = true; + options.catppuccin.zed = + catppuccinLib.mkCatppuccinOption { + name = "zed"; + accentSupport = true; + } + // { + italics = lib.mkEnableOption "the italicized version of theme" // { + default = true; + }; }; - }; config = lib.mkIf cfg.enable { programs.zed-editor = { - extensions = [ "catppuccin" ]; - userSettings.theme = { light = "Catppuccin " + catppuccinLib.mkUpper cfg.flavor + + " (" + + cfg.accent + + ")" + lib.optionalString (!cfg.italics) " - No Italics"; dark = "Catppuccin " + catppuccinLib.mkUpper cfg.flavor + + " (" + + cfg.accent + + ")" + lib.optionalString (!cfg.italics) " - No Italics"; }; }; + + xdg.configFile = { + "zed/themes/catppuccin.json".source = "${sources.zed}/catppuccin-${ + lib.optionalString (!cfg.italics) "no-italics-" + }${cfg.accent}.json"; + }; }; } diff --git a/pkgs/sources.json b/pkgs/sources.json index 1f463379..d8f38350 100644 --- a/pkgs/sources.json +++ b/pkgs/sources.json @@ -183,6 +183,10 @@ "hash": "sha256-/vD/hOi6KcaGyAp6Az7jL5/tQSGRzIrf0oHjAJf4QbI=", "rev": "0adc53028d81bf047461bc61c43a484d11b15220" }, + "zed": { + "hash": "sha256-QxT9OvhOZCJrtgahwQhtlatHZ15/xRmw4AVfiM6YnFY=", + "rev": "1e4d756b4c71d5568be6c16e73f7a6efe3c4d7ef" + }, "zsh-syntax-highlighting": { "hash": "sha256-l6tztApzYpQ2/CiKuLBf8vI2imM6vPJuFdNDSEi7T/o=", "rev": "7926c3d3e17d26b3779851a2255b95ee650bd928" diff --git a/pkgs/zed/package.nix b/pkgs/zed/package.nix new file mode 100644 index 00000000..e33d03cc --- /dev/null +++ b/pkgs/zed/package.nix @@ -0,0 +1,15 @@ +{ buildCatppuccinPort, whiskers }: + +buildCatppuccinPort { + pname = "zed"; + + nativeBuildInputs = [ whiskers ]; + + buildPhase = '' + runHook preBuild + whiskers zed.tera + runHook postBuild + ''; + + installTargets = [ "themes" ]; +}