fix: bug in sending email via msmtpq
This commit is contained in:
parent
333824e8f9
commit
c1e6775376
7 changed files with 148 additions and 8 deletions
|
|
@ -9,7 +9,6 @@ set crypt_autosign = no
|
||||||
set crypt_opportunistic_encrypt = no
|
set crypt_opportunistic_encrypt = no
|
||||||
set pgp_use_gpg_agent = yes
|
set pgp_use_gpg_agent = yes
|
||||||
set mbox_type = Maildir
|
set mbox_type = Maildir
|
||||||
set sort = "threads"
|
|
||||||
|
|
||||||
# Account settings
|
# Account settings
|
||||||
set folder = '~/mail/uchicago'
|
set folder = '~/mail/uchicago'
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ bind editor <Tab> complete-query
|
||||||
bind editor ^T complete
|
bind editor ^T complete
|
||||||
|
|
||||||
# Pager
|
# Pager
|
||||||
|
bind index,pager V edit-raw-message
|
||||||
bind pager c imap-fetch-mail
|
bind pager c imap-fetch-mail
|
||||||
bind pager j next-line
|
bind pager j next-line
|
||||||
bind pager k previous-line
|
bind pager k previous-line
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,9 @@ set date_format = "%d.%m.%Y %H:%M"
|
||||||
|
|
||||||
# set sort = date
|
# set sort = date
|
||||||
# set sort_aux = date
|
# set sort_aux = date
|
||||||
set use_threads = reverse
|
set use_threads = threads
|
||||||
set sort = last-date-received
|
set sort = date
|
||||||
|
set sort_aux = date-received
|
||||||
set sort_browser = reverse-date
|
set sort_browser = reverse-date
|
||||||
set uncollapse_jump
|
set uncollapse_jump
|
||||||
set sort_re
|
set sort_re
|
||||||
|
|
@ -59,7 +60,7 @@ set tilde
|
||||||
unset markers
|
unset markers
|
||||||
|
|
||||||
# MTA (mail transfer agent)
|
# MTA (mail transfer agent)
|
||||||
set sendmail = 'msmtpq --read-envelope-from --read-recipients'
|
set sendmail = 'msmtp --read-envelope-from --read-recipients'
|
||||||
|
|
||||||
# Include keybindings
|
# Include keybindings
|
||||||
source ~/.config/neomutt/keybinds
|
source ~/.config/neomutt/keybinds
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ add 'fang2hou/blink-copilot'
|
||||||
add 'aserowy/tmux.nvim'
|
add 'aserowy/tmux.nvim'
|
||||||
add 'NMAC427/guess-indent.nvim'
|
add 'NMAC427/guess-indent.nvim'
|
||||||
add 'wakatime/vim-wakatime'
|
add 'wakatime/vim-wakatime'
|
||||||
|
add 'OXY2DEV/markview.nvim'
|
||||||
|
|
||||||
-- color themes
|
-- color themes
|
||||||
add 'EdenEast/nightfox.nvim'
|
add 'EdenEast/nightfox.nvim'
|
||||||
|
|
@ -319,7 +320,7 @@ later(function()
|
||||||
require('blink.cmp').setup {
|
require('blink.cmp').setup {
|
||||||
keymap = {
|
keymap = {
|
||||||
preset = 'none',
|
preset = 'none',
|
||||||
['<C-space>'] = { 'show', 'show_documentation', 'hide_documentation' },
|
['<C-y>'] = { 'show', 'show_documentation', 'hide_documentation' },
|
||||||
['<C-e>'] = { 'hide' },
|
['<C-e>'] = { 'hide' },
|
||||||
['<CR>'] = { 'accept', 'fallback' },
|
['<CR>'] = { 'accept', 'fallback' },
|
||||||
['<Tab>'] = {
|
['<Tab>'] = {
|
||||||
|
|
@ -347,6 +348,9 @@ later(function()
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
completion = {
|
completion = {
|
||||||
|
trigger = {
|
||||||
|
show_on_trigger_character = true,
|
||||||
|
},
|
||||||
menu = {
|
menu = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
border = 'rounded',
|
border = 'rounded',
|
||||||
|
|
@ -376,6 +380,22 @@ later(function()
|
||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
later(
|
||||||
|
function()
|
||||||
|
require('markview').setup {
|
||||||
|
markdown_inline = {
|
||||||
|
checkboxes = {
|
||||||
|
checked = {
|
||||||
|
text = '',
|
||||||
|
hl = 'MarkviewCheckboxChecked',
|
||||||
|
scope_hl = 'MarkviewCheckboxStriked',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
later(function()
|
later(function()
|
||||||
require('mason').setup {
|
require('mason').setup {
|
||||||
ui = {
|
ui = {
|
||||||
|
|
@ -395,6 +415,7 @@ later(function()
|
||||||
'rust_analyzer', -- Rust
|
'rust_analyzer', -- Rust
|
||||||
'clangd', -- C/C++
|
'clangd', -- C/C++
|
||||||
'copilot',
|
'copilot',
|
||||||
|
'marksman', -- Markdown + Zettelkasten
|
||||||
},
|
},
|
||||||
automatic_installation = true,
|
automatic_installation = true,
|
||||||
}
|
}
|
||||||
|
|
@ -502,8 +523,15 @@ later(function()
|
||||||
root_markers = { 'flake.nix', 'default.nix', 'shell.nix', '.git' },
|
root_markers = { 'flake.nix', 'default.nix', 'shell.nix', '.git' },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Markdown (marksman)
|
||||||
|
vim.lsp.config.marksman = {
|
||||||
|
cmd = { 'marksman', 'server' },
|
||||||
|
filetypes = { 'markdown', 'markdown.mdx' },
|
||||||
|
root_markers = { '.marksman.toml', '.git', '.editorconfig' },
|
||||||
|
}
|
||||||
|
|
||||||
-- Enable language servers
|
-- Enable language servers
|
||||||
vim.lsp.enable { 'lua_ls', 'ts_ls', 'pyright', 'rust_analyzer', 'clangd', 'copilot', 'nixd' }
|
vim.lsp.enable { 'lua_ls', 'ts_ls', 'pyright', 'rust_analyzer', 'clangd', 'copilot', 'nixd', 'marksman' }
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local map = function(mode, lhs, rhs, opts)
|
local map = function(mode, lhs, rhs, opts)
|
||||||
|
|
|
||||||
|
|
@ -390,6 +390,115 @@ local function apply_highlights(c, opts)
|
||||||
hi('@markup.strikethrough', { strikethrough = true })
|
hi('@markup.strikethrough', { strikethrough = true })
|
||||||
hi('@markup.quote', { fg = c.comment, italic = true })
|
hi('@markup.quote', { fg = c.comment, italic = true })
|
||||||
|
|
||||||
|
-- Markview.nvim
|
||||||
|
-- Palette colors (used as base for many elements)
|
||||||
|
hi('MarkviewPalette0', { fg = c.tag, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette0Fg', { fg = c.tag })
|
||||||
|
hi('MarkviewPalette0Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette0Sign', { fg = c.tag })
|
||||||
|
hi('MarkviewPalette1', { fg = c.keyword, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette1Fg', { fg = c.keyword })
|
||||||
|
hi('MarkviewPalette1Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette1Sign', { fg = c.keyword })
|
||||||
|
hi('MarkviewPalette2', { fg = c.func, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette2Fg', { fg = c.func })
|
||||||
|
hi('MarkviewPalette2Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette2Sign', { fg = c.func })
|
||||||
|
hi('MarkviewPalette3', { fg = c.type, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette3Fg', { fg = c.type })
|
||||||
|
hi('MarkviewPalette3Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette3Sign', { fg = c.type })
|
||||||
|
hi('MarkviewPalette4', { fg = c.constant, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette4Fg', { fg = c.constant })
|
||||||
|
hi('MarkviewPalette4Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette4Sign', { fg = c.constant })
|
||||||
|
hi('MarkviewPalette5', { fg = c.misc, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette5Fg', { fg = c.misc })
|
||||||
|
hi('MarkviewPalette5Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette5Sign', { fg = c.misc })
|
||||||
|
hi('MarkviewPalette6', { fg = c.string, bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette6Fg', { fg = c.string })
|
||||||
|
hi('MarkviewPalette6Bg', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewPalette6Sign', { fg = c.string })
|
||||||
|
|
||||||
|
-- Headings
|
||||||
|
hi('MarkviewHeading1', { fg = c.tag, bold = true })
|
||||||
|
hi('MarkviewHeading2', { fg = c.keyword, bold = true })
|
||||||
|
hi('MarkviewHeading3', { fg = c.func, bold = true })
|
||||||
|
hi('MarkviewHeading4', { fg = c.type, bold = true })
|
||||||
|
hi('MarkviewHeading5', { fg = c.constant, bold = true })
|
||||||
|
hi('MarkviewHeading6', { fg = c.misc, bold = true })
|
||||||
|
hi('MarkviewHeading1Sign', { fg = c.tag })
|
||||||
|
hi('MarkviewHeading2Sign', { fg = c.keyword })
|
||||||
|
hi('MarkviewHeading3Sign', { fg = c.func })
|
||||||
|
hi('MarkviewHeading4Sign', { fg = c.type })
|
||||||
|
hi('MarkviewHeading5Sign', { fg = c.constant })
|
||||||
|
hi('MarkviewHeading6Sign', { fg = c.misc })
|
||||||
|
|
||||||
|
-- Code
|
||||||
|
hi('MarkviewCode', { bg = c.bg_dark })
|
||||||
|
hi('MarkviewCodeInfo', { fg = c.comment })
|
||||||
|
hi('MarkviewCodeFg', { fg = c.fg })
|
||||||
|
hi('MarkviewInlineCode', { fg = c.string, bg = c.bg_dark })
|
||||||
|
|
||||||
|
-- Lists
|
||||||
|
hi('MarkviewListItemStar', { fg = c.tag })
|
||||||
|
hi('MarkviewListItemPlus', { fg = c.string })
|
||||||
|
hi('MarkviewListItemMinus', { fg = c.keyword })
|
||||||
|
|
||||||
|
-- Checkboxes
|
||||||
|
hi('MarkviewCheckboxChecked', { fg = c.string })
|
||||||
|
hi('MarkviewCheckboxUnchecked', { fg = c.fg })
|
||||||
|
hi('MarkviewCheckboxPending', { fg = c.warning })
|
||||||
|
hi('MarkviewCheckboxProgress', { fg = c.info })
|
||||||
|
hi('MarkviewCheckboxCancelled', { fg = c.error, strikethrough = true })
|
||||||
|
hi('MarkviewCheckboxStriked', { fg = c.fg_gutter, strikethrough = true })
|
||||||
|
|
||||||
|
-- Block quotes
|
||||||
|
hi('MarkviewBlockQuoteDefault', { fg = c.comment })
|
||||||
|
hi('MarkviewBlockQuoteWarn', { fg = c.warning })
|
||||||
|
hi('MarkviewBlockQuoteError', { fg = c.error })
|
||||||
|
hi('MarkviewBlockQuoteNote', { fg = c.info })
|
||||||
|
hi('MarkviewBlockQuoteOk', { fg = c.string })
|
||||||
|
hi('MarkviewBlockQuoteSpecial', { fg = c.misc })
|
||||||
|
|
||||||
|
-- Tables
|
||||||
|
hi('MarkviewTableHeader', { fg = c.tag, bold = true })
|
||||||
|
hi('MarkviewTableBorder', { fg = c.border })
|
||||||
|
hi('MarkviewTableAlignLeft', { fg = c.border })
|
||||||
|
hi('MarkviewTableAlignCenter', { fg = c.border })
|
||||||
|
hi('MarkviewTableAlignRight', { fg = c.border })
|
||||||
|
|
||||||
|
-- Links
|
||||||
|
hi('MarkviewHyperlink', { fg = c.misc, underline = true })
|
||||||
|
hi('MarkviewEmail', { fg = c.misc, underline = true })
|
||||||
|
hi('MarkviewImage', { fg = c.support, underline = true })
|
||||||
|
|
||||||
|
-- Text styles
|
||||||
|
hi('MarkviewSubscript', { fg = c.fg_dark })
|
||||||
|
hi('MarkviewSuperscript', { fg = c.fg_dark })
|
||||||
|
|
||||||
|
-- Icons (match palette colors)
|
||||||
|
hi('MarkviewIcon0', { fg = c.tag })
|
||||||
|
hi('MarkviewIcon1', { fg = c.keyword })
|
||||||
|
hi('MarkviewIcon2', { fg = c.func })
|
||||||
|
hi('MarkviewIcon3', { fg = c.type })
|
||||||
|
hi('MarkviewIcon4', { fg = c.constant })
|
||||||
|
hi('MarkviewIcon5', { fg = c.misc })
|
||||||
|
hi('MarkviewIcon6', { fg = c.string })
|
||||||
|
|
||||||
|
-- Gradients (subtle transition from dark to light)
|
||||||
|
hi('MarkviewGradient0', { fg = c.fg_gutter })
|
||||||
|
hi('MarkviewGradient1', { fg = c.fg_gutter })
|
||||||
|
hi('MarkviewGradient2', { fg = c.comment })
|
||||||
|
hi('MarkviewGradient3', { fg = c.comment })
|
||||||
|
hi('MarkviewGradient4', { fg = c.fg_dark })
|
||||||
|
hi('MarkviewGradient5', { fg = c.fg_dark })
|
||||||
|
hi('MarkviewGradient6', { fg = c.fg_dark })
|
||||||
|
hi('MarkviewGradient7', { fg = c.fg })
|
||||||
|
hi('MarkviewGradient8', { fg = c.fg })
|
||||||
|
hi('MarkviewGradient9', { fg = c.fg })
|
||||||
|
|
||||||
-- Apply user overrides
|
-- Apply user overrides
|
||||||
if opts.overrides then
|
if opts.overrides then
|
||||||
for group, hl in pairs(opts.overrides) do
|
for group, hl in pairs(opts.overrides) do
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,9 @@ local calendar = sbar.add('item', constants.items.CALENDAR, {
|
||||||
|
|
||||||
calendar:subscribe({ 'forced', 'routine', 'system_woke' }, function(env)
|
calendar:subscribe({ 'forced', 'routine', 'system_woke' }, function(env)
|
||||||
calendar:set {
|
calendar:set {
|
||||||
label = os.date '%a %d %b, %H:%M',
|
label = os.date '%a %d %b, %I:%M %p',
|
||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
calendar:subscribe('mouse.clicked', function(env) sbar.exec "open -a 'Calendar'" end)
|
-- calendar:subscribe('mouse.clicked', function(env) sbar.exec "open -a 'Calendar'" end)
|
||||||
|
calendar:subscribe('mouse.clicked', function(env) sbar.exec "open -a 'Dato'" end)
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ set-option -sa terminal-features ',xterm-kitty:RGB:extkeys'
|
||||||
# https://github.com/folke/tokyonight.nvim#making-undercurls-work-properly-in-tmux
|
# https://github.com/folke/tokyonight.nvim#making-undercurls-work-properly-in-tmux
|
||||||
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
|
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
|
||||||
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
|
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
|
||||||
|
set -as terminal-overrides ',*:smxx=\E[9m' # strikethrough support
|
||||||
|
|
||||||
setw -g automatic-rename on # rename window to reflect current program
|
setw -g automatic-rename on # rename window to reflect current program
|
||||||
set -g renumber-windows on # renumber windows when a window is closed
|
set -g renumber-windows on # renumber windows when a window is closed
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue