modules/terminal-life: improve neomutt theming

This commit is contained in:
b12f 2024-09-12 17:05:20 +02:00
parent ba78e0baf3
commit 3ed0b291f3
Signed by: b12f
GPG key ID: 729956E1124F8F26
9 changed files with 138 additions and 162 deletions

View file

@ -1,6 +1,6 @@
{ flake, ...}: with flake.self.theme.with0x; { { flake, ...}: with flake.self.theme.with0x; {
env = { env = {
TERM = "xterm-256color"; TERM = "xterm-direct";
}; };
window = { window = {
@ -210,8 +210,8 @@
# Normal colors # Normal colors
normal = { normal = {
black = base00; black = base00;
red = base08; red = base09;
green = base09; green = base0B;
yellow = base0A; yellow = base0A;
blue = base0D; blue = base0D;
magenta = base0E; magenta = base0E;
@ -222,13 +222,13 @@
# Bright colors # Bright colors
bright = { bright = {
black = base00; black = base00;
red = base08; red = base0F;
green = base09; green = base0B;
yellow = base0A; yellow = base0A;
blue = base0D; blue = base0D;
magenta = base0E; magenta = base0E;
cyan = base0C; cyan = base0C;
white = base07; white = base05;
}; };
indexed_colors = [ indexed_colors = [

View file

@ -99,13 +99,11 @@ in {
vi = "nvim"; vi = "nvim";
vim = "nvim"; vim = "nvim";
mutt = "neomutt"; mutt = "neomutt";
cat = "bat";
ls = "eza"; ls = "eza";
la = "eza --group-directories-first -lag"; la = "eza --group-directories-first -lag";
wget = "wget --hsts-file=$XDG_CACHE_HOME/wget-hsts"; 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"; 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"; nnn = "nnn -d -e -H -r";
}; };
} }

View file

@ -42,6 +42,7 @@ in {
screen screen
watson watson
jump jump
bat
] ]
++ ( ++ (
if cfg.full if cfg.full

View file

@ -69,6 +69,9 @@ in {
vim-airline-themes vim-airline-themes
vim-apprentice-nvfetcher vim-apprentice-nvfetcher
# Preview colors inline
nvim-colorizer-lua
# Git integrations # Git integrations
# A Git wrapper so awesome, it should be illegal # A Git wrapper so awesome, it should be illegal
fugitive fugitive

View file

@ -83,4 +83,6 @@ vim.keymap.set('n', '<leader>f?', builtin.builtin, {})
vim.keymap.set('n', '<leader>fr', builtin.command_history, {}) vim.keymap.set('n', '<leader>fr', builtin.command_history, {})
vim.keymap.set('n', '<leader>fc', builtin.commands, {}) vim.keymap.set('n', '<leader>fc', builtin.commands, {})
vim.keymap.set('n', '<leader>ft', builtin.treesitter, {}) vim.keymap.set('n', '<leader>ft', builtin.treesitter, {})
require'colorizer'.setup()
EOF EOF

View file

@ -6,22 +6,22 @@
theme = inputs.themes.custom { theme = inputs.themes.custom {
"name" = "burn"; "name" = "burn";
"author" = "b12f"; "author" = "b12f";
"base00" = "#1a181a"; "base00" = "#1a181a"; # black
"base01" = "#2d2a2e"; "base01" = "#2d2a2e"; # red
"base02" = "#303030"; "base02" = "#303030"; # green
"base03" = "#949494"; "base03" = "#949494"; # olive
"base04" = "#d3d1d4"; "base04" = "#d3d1d4"; # navy
"base05" = "#e3e1e4"; "base05" = "#e3e1e4"; # purple
"base06" = "#303030"; "base06" = "#303030"; # teal
"base07" = "#ff5f5f"; "base07" = "#ff5f5f"; # silver
"base08" = "#f85e84"; "base08" = "#f85e84"; # grey
"base09" = "#df5923"; "base09" = "#df5923"; # red
"base0A" = "#e5c463"; "base0A" = "#e5c463"; # lime
"base0B" = "#9ecd6f"; "base0B" = "#9ecd6f"; # yellow
"base0C" = "#ef9062"; "base0C" = "#ef9062"; # blue
"base0D" = "#7accd7"; "base0D" = "#7accd7"; # fuchsia
"base0E" = "#ab9df2"; "base0E" = "#ab9df2"; # aqua
"base0F" = "#d70000"; "base0F" = "#d70000"; # white
}; };
}; };
} }

View file

@ -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 <http://www.mutt.org/doc/manual/#patterns>
# §9 Using color and mono video attributes <http://www.mutt.org/doc/manual/#color>
# 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

View file

@ -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}"
''

View file

@ -1,4 +1,4 @@
{ args@{
lib, lib,
config, config,
pkgs, pkgs,
@ -83,7 +83,6 @@ in {
]; ];
home-manager.users."${psCfg.user.name}" = rec { 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."neomutt/mailcap".source = ./.config/neomutt/mailcap;
xdg.configFile."urlscan/config.json".text = builtins.toJSON { xdg.configFile."urlscan/config.json".text = builtins.toJSON {
keys = { keys = {
@ -338,9 +337,7 @@ in {
}) (builtins.attrNames accounts.email.accounts); }) (builtins.attrNames accounts.email.accounts);
# unmailboxes = true; # unmailboxes = true;
extraConfig = '' extraConfig = (import ./.config/neomutt/base16.muttrc.nix args) + ''
source ${configHome}/neomutt/base16.muttrc
# HTML emails # HTML emails
auto_view text/html # view html automatically auto_view text/html # view html automatically
alternative_order text/plain text/enriched text/html # save html for last alternative_order text/plain text/enriched text/html # save html for last