Skip to content

Commit

Permalink
yazi: add testbed, resolve 0.4.0 breaking changes, and improve names (#…
Browse files Browse the repository at this point in the history
…719)

Add a testbed and resolve the 0.4.0 breaking changes [2] [3] [4].

Migrate the highlight colors to mnemonics with the following script to
improve readability and simplify the process of reusing upstream
templates [4]:

    colors_base=(
      "base08" "base09" "base0A" "base0B" "base0C" "base0D" "base0E"
      "base0F"
    )

    colors_name=(
      "red" "orange" "yellow" "green" "cyan" "blue" "magenta" "brown"
    )

    for i in "${!colors_base[@]}"; do
      sed \
        --in-place \
        "s/${colors_base[i]}/${colors_name[i]}/g" \
        modules/yazi/hm.nix
    done

[1]: sxyazi/yazi#1772
[2]: sxyazi/yazi#1927
[3]: sxyazi/yazi#1953
[4]: https://github.com/yazi-rs/flavors/blob/main/scripts/catppuccin/template.toml

Closes: #604
Closes: #683
Link: #719

Reviewed-by: NAHO <[email protected]>
  • Loading branch information
xokdvium authored Jan 3, 2025
1 parent 6eb0597 commit 0ce2a52
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 43 deletions.
91 changes: 48 additions & 43 deletions modules/yazi/hm.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,70 +23,75 @@
extension = ".tmTheme";
};

cwd = mkFg base0C;
cwd = mkFg cyan;
hovered = (mkBoth base05 base03) // {bold = true;};
preview_hovered = hovered;
find_keyword = (mkFg base0B) // {bold = true;};
find_keyword = (mkFg green) // {bold = true;};
find_position = mkFg base05;
marker_selected = mkSame base0B;
marker_copied = mkSame base0A;
marker_cut = mkSame base08;
tab_active = mkBoth base00 base0D;
marker_selected = mkSame yellow;
marker_copied = mkSame green;
marker_cut = mkSame red;
tab_active = mkBoth base00 blue;
tab_inactive = mkBoth base05 base01;
border_style = mkFg base04;
};

mode = {
normal_main = (mkBoth base00 blue) // {bold = true;};
normal_alt = mkBoth blue base00;
select_main = (mkBoth base00 green) // {bold = true;};
select_alt = mkBoth green base00;
unset_main = (mkBoth base00 brown) // {bold = true;};
unset_alt = mkBoth brown base00;
};

status = {
separator_style = mkSame base01;
mode_normal = (mkBoth base00 base0D) // {bold = true;};
mode_select = (mkBoth base00 base0B) // {bold = true;};
mode_unset = (mkBoth base00 base0F) // {bold = true;};
progress_label = mkBoth base05 base00;
progress_normal = mkBoth base05 base00;
progress_error = mkBoth base08 base00;
permissions_t = mkFg base0D;
permissions_r = mkFg base0A;
permissions_w = mkFg base08;
permissions_x = mkFg base0B;
permissions_s = mkFg base0C;
progress_error = mkBoth red base00;
perm_type = mkFg blue;
perm_read = mkFg yellow;
perm_write = mkFg red;
perm_exec = mkFg green;
perm_sep = mkFg cyan;
};

select = {
border = mkFg base0D;
active = mkFg base0E;
pick = {
border = mkFg blue;
active = mkFg magenta;
inactive = mkFg base05;
};

input = {
border = mkFg base0D;
border = mkFg blue;
title = mkFg base05;
value = mkFg base05;
selected = mkBg base03;
};

completion = {
border = mkFg base0D;
active = mkBoth base0E base03;
border = mkFg blue;
active = mkBoth magenta base03;
inactive = mkFg base05;
};

tasks = {
border = mkFg base0D;
border = mkFg blue;
title = mkFg base05;
hovered = mkBoth base05 base03;
};

which = {
mask = mkBg base02;
cand = mkFg base0C;
rest = mkFg base0F;
cand = mkFg cyan;
rest = mkFg brown;
desc = mkFg base05;
separator_style = mkFg base04;
};

help = {
on = mkFg base0E;
run = mkFg base0C;
on = mkFg magenta;
run = mkFg cyan;
desc = mkFg base05;
hovered = mkBoth base05 base03;
footer = mkFg base05;
Expand All @@ -96,25 +101,25 @@
filetype.rules = let
mkRule = mime: fg: {inherit mime fg;};
in [
(mkRule "image/*" base0C)
(mkRule "video/*" base0A)
(mkRule "audio/*" base0A)
(mkRule "image/*" cyan)
(mkRule "video/*" yellow)
(mkRule "audio/*" yellow)

(mkRule "application/zip" base0E)
(mkRule "application/gzip" base0E)
(mkRule "application/x-tar" base0E)
(mkRule "application/x-bzip" base0E)
(mkRule "application/x-bzip2" base0E)
(mkRule "application/x-7z-compressed" base0E)
(mkRule "application/x-rar" base0E)
(mkRule "application/xz" base0E)
(mkRule "application/zip" magenta)
(mkRule "application/gzip" magenta)
(mkRule "application/tar" magenta)
(mkRule "application/bzip" magenta)
(mkRule "application/bzip2" magenta)
(mkRule "application/7z-compressed" magenta)
(mkRule "application/rar" magenta)
(mkRule "application/xz" magenta)

(mkRule "application/doc" base0B)
(mkRule "application/pdf" base0B)
(mkRule "application/rtf" base0B)
(mkRule "application/vnd.*" base0B)
(mkRule "application/doc" green)
(mkRule "application/pdf" green)
(mkRule "application/rtf" green)
(mkRule "application/vnd.*" green)

((mkRule "inode/directory" base0D) // {bold = true;})
((mkRule "inode/directory" blue) // {bold = true;})
(mkRule "*" base05)
];
};
Expand Down
26 changes: 26 additions & 0 deletions modules/yazi/testbed.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{ pkgs, ... }:

let
package = pkgs.yazi;
in

{
stylix.testbed.application = {
enable = true;
name = "yazi";
inherit package;
};

home-manager.sharedModules = [
{
programs.yazi = {
enable = true;
inherit package;
};

home.packages = [
pkgs.nerd-fonts.fira-mono
];
}
];
}

0 comments on commit 0ce2a52

Please sign in to comment.