From 3ed0b291f36e2f52369e362b434e046b0e4a5f4d Mon Sep 17 00:00:00 2001 From: b12f Date: Thu, 12 Sep 2024 17:05:20 +0200 Subject: [PATCH] modules/terminal-life: improve neomutt theming --- modules/graphical/alacritty.nix | 12 +- modules/terminal-life/bash/default.nix | 4 +- modules/terminal-life/default.nix | 1 + modules/terminal-life/nvim/default.nix | 3 + modules/terminal-life/nvim/plugins.vim | 2 + theme.nix | 32 ++--- users/b12f/.config/neomutt/base16.muttrc | 132 ------------------- users/b12f/.config/neomutt/base16.muttrc.nix | 107 +++++++++++++++ users/b12f/email.nix | 7 +- 9 files changed, 138 insertions(+), 162 deletions(-) delete mode 100644 users/b12f/.config/neomutt/base16.muttrc create mode 100644 users/b12f/.config/neomutt/base16.muttrc.nix diff --git a/modules/graphical/alacritty.nix b/modules/graphical/alacritty.nix index acb4a0d..483d3ff 100644 --- a/modules/graphical/alacritty.nix +++ b/modules/graphical/alacritty.nix @@ -1,6 +1,6 @@ { flake, ...}: with flake.self.theme.with0x; { env = { - TERM = "xterm-256color"; + TERM = "xterm-direct"; }; window = { @@ -210,8 +210,8 @@ # Normal colors normal = { black = base00; - red = base08; - green = base09; + red = base09; + green = base0B; yellow = base0A; blue = base0D; magenta = base0E; @@ -222,13 +222,13 @@ # Bright colors bright = { black = base00; - red = base08; - green = base09; + red = base0F; + green = base0B; yellow = base0A; blue = base0D; magenta = base0E; cyan = base0C; - white = base07; + white = base05; }; indexed_colors = [ diff --git a/modules/terminal-life/bash/default.nix b/modules/terminal-life/bash/default.nix index 136fd85..16023f4 100644 --- a/modules/terminal-life/bash/default.nix +++ b/modules/terminal-life/bash/default.nix @@ -99,13 +99,11 @@ in { vi = "nvim"; vim = "nvim"; mutt = "neomutt"; + cat = "bat"; ls = "eza"; la = "eza --group-directories-first -lag"; wget = "wget --hsts-file=$XDG_CACHE_HOME/wget-hsts"; - irssi = "irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_DATA_HOME/irssi"; - drone = "DRONE_TOKEN=$(secret-tool lookup drone token) drone"; no = "manix \"\" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | fzf --preview=\"manix '{}'\" | xargs manix"; - myip = "dig +short myip.opendns.com @208.67.222.222 2>&1"; nnn = "nnn -d -e -H -r"; }; } diff --git a/modules/terminal-life/default.nix b/modules/terminal-life/default.nix index fd25919..2dac3a1 100644 --- a/modules/terminal-life/default.nix +++ b/modules/terminal-life/default.nix @@ -42,6 +42,7 @@ in { screen watson jump + bat ] ++ ( if cfg.full diff --git a/modules/terminal-life/nvim/default.nix b/modules/terminal-life/nvim/default.nix index 394ee69..51dc617 100644 --- a/modules/terminal-life/nvim/default.nix +++ b/modules/terminal-life/nvim/default.nix @@ -69,6 +69,9 @@ in { vim-airline-themes vim-apprentice-nvfetcher + # Preview colors inline + nvim-colorizer-lua + # Git integrations # A Git wrapper so awesome, it should be illegal fugitive diff --git a/modules/terminal-life/nvim/plugins.vim b/modules/terminal-life/nvim/plugins.vim index 833b105..17a4d8b 100644 --- a/modules/terminal-life/nvim/plugins.vim +++ b/modules/terminal-life/nvim/plugins.vim @@ -83,4 +83,6 @@ vim.keymap.set('n', 'f?', builtin.builtin, {}) vim.keymap.set('n', 'fr', builtin.command_history, {}) vim.keymap.set('n', 'fc', builtin.commands, {}) vim.keymap.set('n', 'ft', builtin.treesitter, {}) + +require'colorizer'.setup() EOF diff --git a/theme.nix b/theme.nix index ed5359f..6a6dde6 100644 --- a/theme.nix +++ b/theme.nix @@ -6,22 +6,22 @@ theme = inputs.themes.custom { "name" = "burn"; "author" = "b12f"; - "base00" = "#1a181a"; - "base01" = "#2d2a2e"; - "base02" = "#303030"; - "base03" = "#949494"; - "base04" = "#d3d1d4"; - "base05" = "#e3e1e4"; - "base06" = "#303030"; - "base07" = "#ff5f5f"; - "base08" = "#f85e84"; - "base09" = "#df5923"; - "base0A" = "#e5c463"; - "base0B" = "#9ecd6f"; - "base0C" = "#ef9062"; - "base0D" = "#7accd7"; - "base0E" = "#ab9df2"; - "base0F" = "#d70000"; + "base00" = "#1a181a"; # black + "base01" = "#2d2a2e"; # red + "base02" = "#303030"; # green + "base03" = "#949494"; # olive + "base04" = "#d3d1d4"; # navy + "base05" = "#e3e1e4"; # purple + "base06" = "#303030"; # teal + "base07" = "#ff5f5f"; # silver + "base08" = "#f85e84"; # grey + "base09" = "#df5923"; # red + "base0A" = "#e5c463"; # lime + "base0B" = "#9ecd6f"; # yellow + "base0C" = "#ef9062"; # blue + "base0D" = "#7accd7"; # fuchsia + "base0E" = "#ab9df2"; # aqua + "base0F" = "#d70000"; # white }; }; } diff --git a/users/b12f/.config/neomutt/base16.muttrc b/users/b12f/.config/neomutt/base16.muttrc deleted file mode 100644 index ff30a47..0000000 --- a/users/b12f/.config/neomutt/base16.muttrc +++ /dev/null @@ -1,132 +0,0 @@ -# base16-mutt: base16-shell support for mutt -# -# These depend on mutt compiled with s-lang, not ncurses. Check by running `mutt -v` -# Details this configuration may be found in the mutt manual: -# §3 Patterns -# §9 Using color and mono video attributes - -# https://www.neomutt.org/guide/configuration.html#color -# base00 : color00 - Default Background -# base01 : color18 - Lighter Background (Used for status bars) -# base02 : color19 - Selection Background -# base03 : color08 - Comments, Invisibles, Line Highlighting - -# base04 : color20 - Dark Foreground (Used for status bars) -# base05 : color07 - Default Foreground, Caret, Delimiters, Operators -# base06 : color21 - Light Foreground (Not often used) -# base07 : color15 - Light Background (Not often used) - -# base08 : color01 - Index Item: Deleted. -# base09 : color16 - Message: URL. -# base0A : color03 - Search Text Background. Message: Bold. -# base0B : color02 - Message: Code. Index Item: Tagged. -# base0C : color06 - Message: Subject, Quotes. Index Item: Trusted. -# base0D : color04 - Message: Headings. -# base0E : color05 - Message: Italic, Underline. Index Item: Flagged. -# base0F : color17 - Deprecated, Opening/Closing Embedded Language Tags e.g. - -## Base -color normal color07 color00 # softer, bold - -## Weak -color tilde color08 color00 # `~` padding at the end of pager -color attachment color08 color00 -color tree color08 color00 # arrow in threads -color signature color08 color00 -color markers color08 color00 # `+` wrap indicator in pager - -## Strong -color bold color21 color00 -color underline color21 color00 - -## Highlight -color error color01 color00 -color message color02 color00 # informational messages -color search color00 color01 -color status color01 color18 -color indicator color03 color19 # inverse, brighter - - -# Message Index ---------------------------------------------------------------- - -## Weak -color index color08 color00 "~R" # read messages -color index color08 color00 "~d >45d" # older than 45 days -color index color08 color00 "~v~(!~N)" # collapsed thread with no unread -color index color08 color00 "~Q" # messages that have been replied to - -## Strong -color index color01 color00 "(~U|~N|~O)" # unread, new, old messages -color index color01 color00 "~v~(~U|~N|~O)" # collapsed thread with unread - -## Highlight -### Trusted -color index color06 color00 "~g" # PGP signed messages -color index color06 color00 "~G" # PGP encrypted messages -### Odd -color index color01 color00 "~E" # past Expires: header date -color index color01 color00 "~=" # duplicated -color index color01 color00 "~S" # marked by Supersedes: header -### Flagged -color index color05 color00 "~F" # flagged messages -color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside - -# Selection -color index color02 color18 "~T" # tagged messages -color index color01 color18 "~D" # deleted messages - -### Message Headers ---------------------------------------------------- - -# Base -color hdrdefault color07 color00 -color header color07 color00 "^" -# Strong -color header color21 color00 "^(From)" -# Highlight -color header color04 color00 "^(Subject)" - -### Message Body ------------------------------------------------------- -# When possible, these regular expressions attempt to match http://spec.commonmark.org/ -## Weak -# ~~~ Horizontal rules ~~~ -color body color08 color00 "([[:space:]]*[-+=#*~_]){3,}[[:space:]]*" -## Strong -# *Bold* span -color body color03 color00 "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" -# _Underline_ span -color body color05 color00 "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" -# /Italic/ span (Sometimes gets directory names) -color body color05 color00 "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" -# ATX headers -color body color04 color00 "^[[:space:]]{0,3}#+[[:space:]].*$" -## Highlight -# `Code` span -color body color02 color00 "(^|[[:space:][:punct:]])\`[^\`]+\`([[:space:][:punct:]]|$)" -# Indented code block -color body color02 color00 "^[[:space:]]{4,}.*$" -# URLs -color body color16 color00 "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" -# Email addresses -color body color16 color00 "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" -# Emoticons ;-P -color body black yellow "[;:][-o]?[})>{(<|P]" - -# PGP -color body color21 color01 "(BAD signature)" -color body color21 color01 "^gpg: BAD signature from.*" -color body color21 color04 "(Good signature)" -color body color21 color04 "^gpg: Good signature .*" -color body color04 color00 "^gpg: " - - -## Quotation blocks -color quoted color06 color00 -color quoted1 color02 color00 -color quoted2 color03 color00 -color quoted3 color16 color00 -color quoted4 color01 color00 -color quoted5 color17 color00 -color quoted6 color05 color00 -color quoted7 color04 color00 - -# vi: ft=muttrc diff --git a/users/b12f/.config/neomutt/base16.muttrc.nix b/users/b12f/.config/neomutt/base16.muttrc.nix new file mode 100644 index 0000000..d976ae1 --- /dev/null +++ b/users/b12f/.config/neomutt/base16.muttrc.nix @@ -0,0 +1,107 @@ +{ flake, ...}: with flake.self.theme.with0x; '' +## Base +color normal "${base05}" "${base00}" # softer, bold + +## Weak +color tilde "${base0A}" "${base00}" # `~` padding at the end of pager +color attachment "${base0A}" "${base00}" +color tree "${base0A}" "${base00}" # arrow in threads +color signature "${base0A}" "${base00}" +color markers "${base0A}" "${base00}" # `+` wrap indicator in pager + +## Strong +color bold "${base0C}" "${base00}" +color underline "${base09}" "${base00}" + +## Highlight +color error "${base05}" "${base0F}" +color message "${base00}" "${base0D}" # informational messages +color search "${base07}" "${base06}" +color status "${base07}" "${base06}" +color indicator "${base0A}" "${base06}" # inverse, brighter + +# Message Index ---------------------------------------------------------------- + +## Weak +color index "${base03}" "${base00}" "~R" # read messages +color index "${base03}" "${base00}" "~d >45d" # older than 45 days +color index "${base03}" "${base00}" "~v~(!~N)" # collapsed thread with no unread +color index "${base03}" "${base00}" "~Q" # messages that have been replied to + +## Strong +color index "${base05}" "${base00}" "(~U|~N|~O)" # unread, new, old messages +color index "${base05}" "${base00}" "~v~(~U|~N|~O)" # collapsed thread with unread + +## Highlight +### Trusted +color index "${base0B}" "${base00}" "~g" # PGP signed messages +color index "${base0D}" "${base00}" "~G" # PGP encrypted messages +### Untrusted +# color index "${base03}" "${base00}" "~s" # PGP signed unverified +### Odd +color index "${base01}" "${base00}" "~E" # past Expires: header date +color index "${base01}" "${base00}" "~=" # duplicated +color index "${base01}" "${base00}" "~S" # marked by Supersedes: header +### Flagged +color index "${base05}" "${base00}" "~F" # flagged messages +color index "${base02}" "${base00}" "~v~(~F)" # collapsed thread with flagged inside + +# Selection +color index "${base09}" "${base02}" "~T" # tagged messages +color index "${base0F}" "${base02}" "~D" # deleted messages + +### Message Headers ---------------------------------------------------- + +# Base +color hdrdefault "${base03}" "${base00}" +color header "${base03}" "${base00}" "^" +# Strong +color header "${base04}" "${base00}" "^(From)" +# Highlight +color header "${base05}" "${base00}" "^(Subject)" + +### Message Body ------------------------------------------------------- +# When possible, these regular expressions attempt to match http://spec.commonmark.org/ +color body "${base05}" "${base00}" "^" +## Weak +# ~~~ Horizontal rules ~~~ +color body "${base08}" "${base00}" "([[:space:]]*[-+=#*~_]){3,}[[:space:]]*" +## Strong +# *Bold* span +color body "${base03}" "${base00}" "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +# _Underline_ span +color body "${base05}" "${base00}" "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +# /Italic/ span (Sometimes gets directory names) +color body "${base05}" "${base00}" "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" +# ATX headers +color body "${base04}" "${base00}" "^[[:space:]]{0,3}#+[[:space:]].*$" +## Highlight +# `Code` span +color body "${base05}" "${base01}" "(^|[[:space:][:punct:]])\`[^\`]+\`([[:space:][:punct:]]|$)" +# Indented code block +color body "${base05}" "${base00}" "^[[:space:]]{4,}.*$" +# URLs +color body "${base0D}" "${base00}" "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" +# Email addresses +color body "${base0E}" "${base00}" "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" +# Emoticons ;-P +color body "${base00}" "${base0A}" "[;:][-o]?[})>{(<|P]" + +# PGP +color body "${base05}" "${base0F}" "(BAD signature)" +color body "${base05}" "${base0F}" "^gpg: BAD signature from.*" +color body "${base00}" "${base0B}" "(Good signature)" +color body "${base00}" "${base0B}" "^gpg: Good signature .*" +color body "${base04}" "${base00}" "^gpg: " + + +## Quotation blocks +color quoted "${base06}" "${base00}" +color quoted1 "${base02}" "${base00}" +color quoted2 "${base03}" "${base00}" +color quoted3 color16 "${base00}" +color quoted4 "${base01}" "${base00}" +color quoted5 color17 "${base00}" +color quoted6 "${base05}" "${base00}" +color quoted7 "${base04}" "${base00}" +'' diff --git a/users/b12f/email.nix b/users/b12f/email.nix index 3c32a2d..e15b78c 100644 --- a/users/b12f/email.nix +++ b/users/b12f/email.nix @@ -1,4 +1,4 @@ -{ +args@{ lib, config, pkgs, @@ -83,7 +83,6 @@ in { ]; home-manager.users."${psCfg.user.name}" = rec { - xdg.configFile."neomutt/base16.muttrc".source = ./.config/neomutt/base16.muttrc; xdg.configFile."neomutt/mailcap".source = ./.config/neomutt/mailcap; xdg.configFile."urlscan/config.json".text = builtins.toJSON { keys = { @@ -338,9 +337,7 @@ in { }) (builtins.attrNames accounts.email.accounts); # unmailboxes = true; - extraConfig = '' - source ${configHome}/neomutt/base16.muttrc - + extraConfig = (import ./.config/neomutt/base16.muttrc.nix args) + '' # HTML emails auto_view text/html # view html automatically alternative_order text/plain text/enriched text/html # save html for last