wry, many thing
This commit is contained in:
parent
6e62eccfba
commit
848ed62c5d
47 changed files with 1598 additions and 1201 deletions
|
|
@ -1,12 +1,16 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
(scope "apps.editor" <| pkgs.helix)
|
||||
// scope "user.programs.helix" {
|
||||
enable = true;
|
||||
settings = {
|
||||
let
|
||||
toml = (pkgs.formats.toml { }).generate;
|
||||
|
||||
pal = config.rice.palette.hex;
|
||||
ui = config.rice.roles pal;
|
||||
|
||||
helixConfig = toml "config.toml" {
|
||||
theme = "nix-rice";
|
||||
editor = {
|
||||
bufferline = "multiple";
|
||||
|
|
@ -28,7 +32,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
helixLanguages = toml "languages.toml" {
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
|
|
@ -64,4 +68,204 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
helixTheme = toml "nix-rice.toml" {
|
||||
# === Syntax (palette) ===
|
||||
"attribute" = pal.bright.cyan;
|
||||
"keyword" = {
|
||||
fg = pal.normal.red;
|
||||
};
|
||||
"keyword.directive" = pal.normal.red;
|
||||
"namespace" = pal.bright.cyan;
|
||||
"punctuation" = pal.bright.yellow;
|
||||
"punctuation.delimiter" = pal.bright.yellow;
|
||||
"operator" = pal.bright.magenta;
|
||||
"special" = pal.normal.magenta;
|
||||
"variable.other.member" = pal.bright.blue;
|
||||
"variable" = pal.util.fg;
|
||||
"variable.builtin" = pal.bright.yellow;
|
||||
"variable.parameter" = pal.bright.white;
|
||||
"type" = pal.normal.yellow;
|
||||
"type.builtin" = pal.normal.yellow;
|
||||
"constructor" = {
|
||||
fg = pal.bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function" = {
|
||||
fg = pal.normal.green;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function.macro" = pal.bright.cyan;
|
||||
"function.builtin" = pal.normal.yellow;
|
||||
"tag" = pal.normal.red;
|
||||
"comment" = {
|
||||
fg = pal.normal.magenta;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"constant" = {
|
||||
fg = pal.bright.magenta;
|
||||
};
|
||||
"constant.builtin" = {
|
||||
fg = pal.bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"string" = pal.normal.green;
|
||||
"constant.numeric" = pal.bright.magenta;
|
||||
"constant.character.escape" = {
|
||||
fg = pal.bright.white;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"label" = pal.bright.cyan;
|
||||
"module" = pal.bright.cyan;
|
||||
|
||||
# === Markup (palette) ===
|
||||
"markup.heading" = pal.bright.cyan;
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
"markup.link.url" = {
|
||||
fg = pal.bright.green;
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"markup.link.text" = pal.bright.red;
|
||||
"markup.raw" = pal.bright.red;
|
||||
|
||||
# === Diff / diagnostics (roles) ===
|
||||
"diff.plus" = ui.added;
|
||||
"diff.delta" = ui.changed;
|
||||
"diff.minus" = ui.removed;
|
||||
"warning" = ui.warning;
|
||||
"error" = ui.error;
|
||||
"info" = ui.info;
|
||||
"hint" = ui.hint;
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = ui.warning;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = ui.error;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = ui.info;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = ui.hint;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
|
||||
# === UI (roles) ===
|
||||
"ui.background" = {
|
||||
bg = ui.bg;
|
||||
};
|
||||
"ui.text" = {
|
||||
fg = ui.fg;
|
||||
};
|
||||
"ui.text.focus" = {
|
||||
fg = ui.fg;
|
||||
};
|
||||
"ui.linenr" = {
|
||||
fg = pal.normal.cyan;
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
fg = pal.normal.yellow;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.cursorline" = {
|
||||
bg = ui.surface;
|
||||
};
|
||||
"ui.statusline" = {
|
||||
fg = ui.fg;
|
||||
bg = ui.overlay;
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
fg = ui.fg;
|
||||
bg = ui.overlay;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
fg = ui.fg;
|
||||
bg = ui.primary;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
fg = ui.fg;
|
||||
bg = ui.highlight;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = ui.muted;
|
||||
bg = ui.surface;
|
||||
};
|
||||
"ui.popup" = {
|
||||
bg = ui.surface;
|
||||
};
|
||||
"ui.window" = {
|
||||
bg = ui.surface;
|
||||
};
|
||||
"ui.help" = {
|
||||
bg = ui.surface;
|
||||
fg = ui.fg;
|
||||
};
|
||||
"ui.selection" = {
|
||||
bg = ui.highlight;
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
"ui.cursor.primary" = {
|
||||
bg = ui.muted;
|
||||
fg = ui.surface;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
bg = ui.accent;
|
||||
};
|
||||
"ui.menu" = {
|
||||
fg = ui.fg;
|
||||
bg = ui.overlay;
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = ui.overlay;
|
||||
bg = ui.secondary;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.virtual.whitespace" = ui.overlay;
|
||||
"ui.virtual.ruler" = {
|
||||
bg = ui.surface;
|
||||
};
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = pal.normal.magenta;
|
||||
};
|
||||
};
|
||||
|
||||
helixConfigDir = pkgs.runCommand "helix-xdg" { } ''
|
||||
mkdir -p $out/helix/themes
|
||||
cp ${helixConfig} $out/helix/config.toml
|
||||
cp ${helixLanguages} $out/helix/languages.toml
|
||||
cp ${helixTheme} $out/helix/themes/nix-rice.toml
|
||||
'';
|
||||
|
||||
helixWrapped = pkgs.symlinkJoin {
|
||||
name = "helix";
|
||||
paths = [ pkgs.helix ];
|
||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/hx \
|
||||
--set XDG_CONFIG_HOME "${helixConfigDir}"
|
||||
'';
|
||||
meta.mainProgram = "hx";
|
||||
};
|
||||
in
|
||||
scope "apps.editor" <| helixWrapped
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue