mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 14:28:02 +03:00
theme/QoL
This commit is contained in:
25 files changed
+1036
-439
No files matched your search
@@ -0,0 +1,238 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-theme-nushell =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib.meta) getExe;
|
||||
|
||||
p = config.elars.theme.palette;
|
||||
h = p.withHashtag;
|
||||
accent = h.accent or h.base06;
|
||||
|
||||
vividTheme = pkgs.writeText "kemuri.yml" ''
|
||||
colors:
|
||||
bg: '${p.base00}'
|
||||
surface: '${p.base02}'
|
||||
muted: '${p.base04}'
|
||||
fg: '${p.base05}'
|
||||
accent: '${lib.removePrefix "#" accent}'
|
||||
red: '${p.base08}'
|
||||
orange: '${p.base09}'
|
||||
yellow: '${p.base0A}'
|
||||
green: '${p.base0B}'
|
||||
cyan: '${p.base0C}'
|
||||
blue: '${p.base0D}'
|
||||
magenta: '${p.base0E}'
|
||||
brown: '${p.base0F}'
|
||||
|
||||
core:
|
||||
normal_text: {}
|
||||
regular_file: {}
|
||||
reset_to_normal: {}
|
||||
|
||||
directory:
|
||||
foreground: blue
|
||||
font-style: bold
|
||||
|
||||
symlink:
|
||||
foreground: cyan
|
||||
|
||||
multi_hard_link: {}
|
||||
|
||||
fifo:
|
||||
foreground: bg
|
||||
background: cyan
|
||||
|
||||
socket:
|
||||
foreground: bg
|
||||
background: magenta
|
||||
|
||||
door:
|
||||
foreground: bg
|
||||
background: magenta
|
||||
|
||||
block_device:
|
||||
foreground: bg
|
||||
background: orange
|
||||
|
||||
character_device:
|
||||
foreground: bg
|
||||
background: yellow
|
||||
|
||||
broken_symlink:
|
||||
foreground: bg
|
||||
background: red
|
||||
|
||||
missing_symlink_target:
|
||||
foreground: bg
|
||||
background: red
|
||||
|
||||
setuid:
|
||||
foreground: red
|
||||
font-style: bold
|
||||
|
||||
setgid:
|
||||
foreground: orange
|
||||
font-style: bold
|
||||
|
||||
file_with_capability:
|
||||
foreground: red
|
||||
|
||||
sticky_other_writable:
|
||||
foreground: bg
|
||||
background: green
|
||||
|
||||
other_writable:
|
||||
foreground: blue
|
||||
background: surface
|
||||
|
||||
sticky:
|
||||
foreground: bg
|
||||
background: blue
|
||||
|
||||
executable_file:
|
||||
foreground: green
|
||||
font-style: bold
|
||||
|
||||
text:
|
||||
special:
|
||||
foreground: bg
|
||||
background: accent
|
||||
|
||||
todo:
|
||||
font-style: bold
|
||||
|
||||
licenses:
|
||||
foreground: muted
|
||||
|
||||
configuration:
|
||||
foreground: yellow
|
||||
|
||||
other:
|
||||
foreground: fg
|
||||
|
||||
markup:
|
||||
foreground: accent
|
||||
|
||||
programming:
|
||||
source:
|
||||
foreground: cyan
|
||||
|
||||
tooling:
|
||||
foreground: brown
|
||||
|
||||
continuous-integration:
|
||||
foreground: magenta
|
||||
|
||||
media:
|
||||
foreground: magenta
|
||||
|
||||
office:
|
||||
foreground: orange
|
||||
|
||||
archives:
|
||||
foreground: red
|
||||
font-style: underline
|
||||
|
||||
executable:
|
||||
foreground: green
|
||||
font-style: bold
|
||||
|
||||
unimportant:
|
||||
foreground: muted
|
||||
'';
|
||||
|
||||
lsColors = pkgs.runCommand "ls_colors.txt" { } ''
|
||||
${getExe pkgs.vivid} generate ${vividTheme} > $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.packages = [ pkgs.vivid ];
|
||||
|
||||
programs.nushell.extraConfig = ''
|
||||
$env.LS_COLORS = open --raw ${lsColors}
|
||||
|
||||
$env.config.color_config = {
|
||||
separator: "${h.base03}"
|
||||
leading_trailing_space_bg: { attr: n }
|
||||
header: { fg: "${accent}" attr: b }
|
||||
row_index: { fg: "${h.base04}" attr: b }
|
||||
empty: "${h.base0D}"
|
||||
hints: "${h.base04}"
|
||||
search_result: { fg: "${h.base00}" bg: "${accent}" }
|
||||
|
||||
int: "${h.base09}"
|
||||
float: "${h.base09}"
|
||||
filesize: "${h.base0C}"
|
||||
duration: "${h.base0A}"
|
||||
datetime: "${h.base0E}"
|
||||
range: "${h.base0A}"
|
||||
binary: "${h.base0F}"
|
||||
nothing: "${h.base08}"
|
||||
cell-path: "${h.base06}"
|
||||
record: "${h.base05}"
|
||||
list: "${h.base05}"
|
||||
block: "${h.base05}"
|
||||
closure: "${h.base0C}"
|
||||
glob: "${h.base0C}"
|
||||
|
||||
shape_binary: { fg: "${h.base0F}" attr: b }
|
||||
shape_block: { fg: "${h.base0D}" attr: b }
|
||||
shape_bool: "${h.base0C}"
|
||||
shape_closure: { fg: "${h.base0C}" attr: b }
|
||||
shape_custom: "${h.base0B}"
|
||||
shape_datetime: { fg: "${h.base0E}" attr: b }
|
||||
shape_directory: "${h.base0D}"
|
||||
shape_external: "${h.base0C}"
|
||||
shape_external_resolved: { fg: "${h.base0B}" attr: b }
|
||||
shape_externalarg: { fg: "${h.base0B}" attr: b }
|
||||
shape_filepath: "${h.base0D}"
|
||||
shape_flag: { fg: "${h.base0A}" attr: b }
|
||||
shape_float: { fg: "${h.base09}" attr: b }
|
||||
shape_garbage: { fg: "${h.base07}" bg: "${h.base08}" attr: b }
|
||||
shape_glob_interpolation: { fg: "${h.base0C}" attr: b }
|
||||
shape_globpattern: { fg: "${h.base0C}" attr: b }
|
||||
shape_int: { fg: "${h.base09}" attr: b }
|
||||
shape_internalcall: { fg: "${h.base0C}" attr: b }
|
||||
shape_keyword: { fg: "${h.base0E}" attr: b }
|
||||
shape_list: { fg: "${h.base0C}" attr: b }
|
||||
shape_literal: "${h.base0D}"
|
||||
shape_match_pattern: "${h.base0B}"
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_nothing: "${h.base08}"
|
||||
shape_operator: "${h.base0A}"
|
||||
shape_pipe: { fg: "${h.base0E}" attr: b }
|
||||
shape_range: { fg: "${h.base0A}" attr: b }
|
||||
shape_record: { fg: "${h.base0C}" attr: b }
|
||||
shape_redirection: { fg: "${h.base0E}" attr: b }
|
||||
shape_signature: { fg: "${h.base0B}" attr: b }
|
||||
shape_string: "${h.base0B}"
|
||||
shape_string_interpolation: { fg: "${h.base0C}" attr: b }
|
||||
shape_table: { fg: "${h.base0D}" attr: b }
|
||||
shape_variable: "${h.base0E}"
|
||||
shape_vardecl: "${h.base0E}"
|
||||
}
|
||||
|
||||
$env.config.color_config.bool = {||
|
||||
if $in {
|
||||
{ fg: "${h.base0B}" attr: b }
|
||||
} else {
|
||||
{ fg: "${h.base08}" attr: b }
|
||||
}
|
||||
}
|
||||
|
||||
$env.config.color_config.string = {||
|
||||
if $in =~ "^(#|0x)[a-fA-F0-9]+$" {
|
||||
$in | str replace "0x" "#"
|
||||
} else {
|
||||
"${h.base05}"
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user