dotfiles/modules/home/common/helix/default.nix
2025-12-12 10:39:49 +01:00

63 lines
1.4 KiB
Nix

{pkgs, ...}: let
catppuccin = pkgs.stdenv.mkDerivation {
name = "catppuccin-helix-theme";
src = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "helix";
rev = "3b1b0b2446791812e4a76ba147223dd5f3d4319b";
sha256 = "7TJ1CDts0i3QPRWz/gvRpkXzh8wGGLW5cv9+Vg3K1zc=";
};
installPhase = ''
mkdir -p $out
cp -r ./themes/* $out
'';
};
in {
home.packages = [pkgs.helix];
xdg.configFile."helix/themes/catppuccin".source = catppuccin;
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "rose_pine_dawn";
editor = {
rulers = [80];
shell = ["nu" "-c"];
line-number = "relative";
auto-format = true;
file-picker.hidden = false;
# TODO: Why does the clipboard not work?
# clipboard-provider.custom = {
# yank = {command = "wl-copy";};
# paste = {command = "wl-paste";};
# };
whitespace.render = {
tabpad = "all";
};
};
};
languages.language = [
{
name = "nix";
auto-format = true;
formatter.command = "${pkgs.alejandra}/bin/alejandra";
}
];
themes = {
catppuccin = {
inherits = "catppuccin/default/catppuccin_frappe";
"ui.background" = {};
# "ui.virtual.whitespace" = {style = "dim";};
};
};
};
}