use palette.nu # Generate a Yazi flavor.toml from the Nugu semantic palette. export def flavor [mode: string] { let nugu = (palette nugu $mode) let p = $nugu.palette let theme = { mgr: { cwd: { fg: $p.content.normal } find_keyword: { fg: $p.content.accent, bold: true, italic: true, underline: true } find_position: { fg: $p.content.accent, bold: true } symlink_target: { fg: $p.content.minor } marker_copied: { fg: $p.content.focus, bg: $p.content.focus } marker_cut: { fg: $p.warning, bg: $p.warning } marker_marked: { fg: $p.content.accent, bg: $p.content.accent } marker_selected: { fg: $p.ui.important_local, bg: $p.ui.important_local } count_copied: { fg: $p.content.backdrop, bg: $p.content.focus, bold: true } count_cut: { fg: $p.content.backdrop, bg: $p.warning, bold: true } count_selected: { fg: $p.ui.backdrop, bg: $p.ui.important_local, bold: true } border_symbol: "│" border_style: { fg: $p.ui.unfocus } } status: { overall: { fg: $p.ui.normal, bg: $p.ui.backdrop } sep_left: { open: "", close: "" } sep_right: { open: "", close: "" } perm_type: { fg: $p.content.important_global } perm_read: { fg: $p.content.focus } perm_write: { fg: $p.warning } perm_exec: { fg: $p.error } perm_sep: { fg: $p.content.minor } progress_label: { fg: $p.content.normal, bold: true } progress_normal: { fg: $p.ui.accent, bg: $p.ui.backdrop } progress_error: { fg: $p.error, bg: $p.ui.backdrop } } mode: { normal_main: { fg: $p.ui.backdrop, bg: $p.ui.accent, bold: true } normal_alt: { fg: $p.ui.normal, bg: $p.ui.backdrop } select_main: { fg: $p.ui.backdrop, bg: $p.ui.important_local, bold: true } select_alt: { fg: $p.ui.normal, bg: $p.ui.backdrop } unset_main: { fg: $p.content.backdrop, bg: $p.warning, bold: true } unset_alt: { fg: $p.ui.normal, bg: $p.ui.backdrop } } tabs: { active: { fg: $p.ui.backdrop, bg: $p.ui.accent, bold: true } inactive: { fg: $p.ui.minor, bg: $p.ui.backdrop } sep_inner: { open: "", close: "" } sep_outer: { open: "", close: "" } } which: { cols: 3 mask: { bg: $p.ui.backdrop } cand: { fg: $p.ui.accent, bold: true } rest: { fg: $p.ui.minor } desc: { fg: $p.ui.normal } separator: " → " separator_style: { fg: $p.ui.minor } } input: { border: { fg: $p.ui.unfocus } title: { fg: $p.ui.accent, bold: true } value: { fg: $p.content.normal } selected: { fg: $p.content.backdrop, bg: $p.content.focus } } confirm: { border: { fg: $p.warning } title: { fg: $p.warning, bold: true } body: { fg: $p.content.normal } list: { fg: $p.content.normal } btn_yes: { fg: $p.content.backdrop, bg: $p.error, bold: true } btn_no: { fg: $p.ui.backdrop, bg: $p.ui.focus, bold: true } btn_labels: ["yes", "no"] } spot: { border: { fg: $p.ui.unfocus } title: { fg: $p.ui.accent, bold: true } tbl_col: { fg: $p.content.normal } tbl_cell: { fg: $p.content.backdrop, bg: $p.content.focus } } pick: { border: { fg: $p.ui.unfocus } active: { fg: $p.ui.backdrop, bg: $p.ui.focus, bold: true } inactive: { fg: $p.ui.normal } } cmp: { border: { fg: $p.ui.unfocus } active: { fg: $p.ui.backdrop, bg: $p.ui.focus, bold: true } inactive: { fg: $p.ui.normal } } tasks: { border: { fg: $p.ui.unfocus } title: { fg: $p.ui.accent, bold: true } hovered: { fg: $p.content.focus, bold: true } } help: { on: { fg: $p.ui.accent, bold: true } run: { fg: $p.content.important_local } desc: { fg: $p.content.normal } hovered: { fg: $p.ui.backdrop, bg: $p.ui.focus, bold: true } footer: { fg: $p.ui.backdrop, bg: $p.ui.accent, bold: true } } notify: { title_info: { fg: $p.info, bold: true } title_warn: { fg: $p.warning, bold: true } title_error: { fg: $p.error, bold: true } } filetype: { rules: [ { mime: "image/*", fg: $p.content.focus } { mime: "{audio,video}/*", fg: $p.content.important_local } { mime: "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg: $p.content.accent } { mime: "application/{pdf,doc,rtf}", fg: $p.content.important_global } { mime: "*", is: "orphan", fg: $p.content.backdrop, bg: $p.error, bold: true } { mime: "application/*exec*", fg: $p.error } { url: "*/", fg: $p.ui.accent, bold: true } { url: "*", fg: $p.content.normal } ] } git: { unknown: { fg: $p.content.minor } modified: { fg: $p.warning, bold: true } added: { fg: $p.content.focus, bold: true } untracked: { fg: $p.content.accent, bold: true } ignored: { fg: $p.content.minor } deleted: { fg: $p.error, bold: true } updated: { fg: $p.warning, bold: true } clean: { fg: $p.content.minor } unknown_sign: "" modified_sign: "M " added_sign: "A " untracked_sign: "? " ignored_sign: "I " deleted_sign: "D " updated_sign: "U " clean_sign: "" } } $theme | to toml }