Compare commits
2 commits
eb10e2f9fc
...
c1e6775376
| Author | SHA1 | Date | |
|---|---|---|---|
| c1e6775376 | |||
| 333824e8f9 |
12 changed files with 303 additions and 35 deletions
|
|
@ -10,13 +10,13 @@ persistent-workspaces = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
|
|||
enable-normalization-flatten-containers = false
|
||||
enable-normalization-opposite-orientation-for-nested-containers = false
|
||||
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
|
||||
exec-on-workspace-change = ['/Users/rayandrew/dotfiles/bin/path-shim',
|
||||
exec-on-workspace-change = ['~/dotfiles/bin/path-shim',
|
||||
'sketchybar --trigger aerospace_workspace_changed FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE PREV_WORKSPACE=$AEROSPACE_PREV_WORKSPACE && aerospace-scratchpad hook pull-window $AEROSPACE_PREV_WORKSPACE $AEROSPACE_FOCUSED_WORKSPACE'
|
||||
]
|
||||
on-focus-changed = [
|
||||
# 'move-mouse window-lazy-center',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger front_app_switched',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger update_windows'
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger front_app_switched',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger update_windows'
|
||||
]
|
||||
|
||||
[gaps]
|
||||
|
|
@ -77,14 +77,14 @@ on-focus-changed = [
|
|||
|
||||
alt-shift-semicolon = [
|
||||
'mode service',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger send_message MESSAGE=SERVICE_MODE HOLD=true'
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger send_message MESSAGE=SERVICE_MODE HOLD=true'
|
||||
]
|
||||
alt-r = [
|
||||
'mode resize',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger send_message MESSAGE=RESIZE_MODE HOLD=true'
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger send_message MESSAGE=RESIZE_MODE HOLD=true'
|
||||
]
|
||||
|
||||
cmd-ctrl-1 = "exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim aerospace-scratchpad show Finder"
|
||||
cmd-ctrl-1 = "exec-and-forget ~/dotfiles/bin/path-shim aerospace-scratchpad show Finder"
|
||||
|
||||
[mode.resize.binding]
|
||||
h = 'resize width -50'
|
||||
|
|
@ -93,18 +93,18 @@ on-focus-changed = [
|
|||
l = 'resize width +50'
|
||||
esc = [
|
||||
'mode main',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger hide_message'
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger hide_message'
|
||||
]
|
||||
enter = [
|
||||
'mode main',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger hide_message'
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger hide_message'
|
||||
]
|
||||
|
||||
[mode.service.binding]
|
||||
esc = [
|
||||
'reload-config',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger hide_message',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --reload',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger hide_message',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --reload',
|
||||
'mode main',
|
||||
]
|
||||
r = ['flatten-workspace-tree', 'mode main']
|
||||
|
|
@ -119,14 +119,14 @@ on-focus-changed = [
|
|||
|
||||
p = [
|
||||
'exec-and-forget ~/dotfiles/bin/presentation-mode on',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --bar height=0',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger hide_message',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --bar height=0',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger hide_message',
|
||||
'mode main'
|
||||
]
|
||||
shift-p = [
|
||||
'exec-and-forget ~/dotfiles/bin/presentation-mode off',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --bar height=30',
|
||||
'exec-and-forget /Users/rayandrew/dotfiles/bin/path-shim sketchybar --trigger hide_message',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --bar height=30',
|
||||
'exec-and-forget ~/dotfiles/bin/path-shim sketchybar --trigger hide_message',
|
||||
'mode main'
|
||||
]
|
||||
|
||||
|
|
@ -140,11 +140,11 @@ on-focus-changed = [
|
|||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.openai.chat'
|
||||
run = ['move-node-to-workspace 3']
|
||||
run = ['move-node-to-workspace 3', 'layout h_accordion']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.anthropic.claudefordesktop'
|
||||
run = ['move-node-to-workspace 3']
|
||||
run = ['move-node-to-workspace 3', 'layout h_accordion']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.1password.1password'
|
||||
|
|
@ -178,11 +178,11 @@ on-focus-changed = [
|
|||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'org.mozilla.firefox'
|
||||
run = ['move-node-to-workspace 10']
|
||||
run = ['move-node-to-workspace 10', 'layout h_accordion']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.apple.Safari'
|
||||
run = ['move-node-to-workspace 10']
|
||||
run = ['move-node-to-workspace 10', 'layout h_accordion']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'org.zotero.zotero'
|
||||
|
|
|
|||
|
|
@ -35,8 +35,9 @@ named-mailboxes "p/trash" =Trash
|
|||
named-mailboxes "p/archive" =Archive
|
||||
|
||||
# Virtual mailboxes (notmuch)
|
||||
virtual-mailboxes "All Mail" "notmuch://?query=folder:personal/** AND date:30d.."
|
||||
virtual-mailboxes "Unread" "notmuch://?query=folder:personal/** AND tag:unread"
|
||||
virtual-mailboxes "Last 30d" "notmuch://?query=path:personal/** AND date:30d.."
|
||||
virtual-mailboxes "All Mail" "notmuch://?query=path:personal/**"
|
||||
virtual-mailboxes "Unread" "notmuch://?query=path:personal/** AND tag:unread"
|
||||
|
||||
# Signature
|
||||
set signature = "~/.config/neomutt/signatures/personal"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ set crypt_autosign = no
|
|||
set crypt_opportunistic_encrypt = no
|
||||
set pgp_use_gpg_agent = yes
|
||||
set mbox_type = Maildir
|
||||
set sort = "threads"
|
||||
|
||||
# Account settings
|
||||
set folder = '~/mail/uchicago'
|
||||
|
|
@ -36,8 +35,9 @@ named-mailboxes "u/archive" =Archive
|
|||
named-mailboxes "u/teaching" =Teaching
|
||||
|
||||
# Virtual mailboxes (notmuch)
|
||||
virtual-mailboxes "All Mail" "notmuch://?query=folder:uchicago/** AND date:30d.."
|
||||
virtual-mailboxes "Unread" "notmuch://?query=folder:uchicago/** AND tag:unread"
|
||||
virtual-mailboxes "Last 30d" "notmuch://?query=path:uchicago/** AND date:30d.."
|
||||
virtual-mailboxes "All Mail" "notmuch://?query=path:uchicago/**"
|
||||
virtual-mailboxes "Unread" "notmuch://?query=path:uchicago/** AND tag:unread"
|
||||
|
||||
# Signature
|
||||
set signature = "~/.config/neomutt/signatures/uchicago"
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ bind editor <Tab> complete-query
|
|||
bind editor ^T complete
|
||||
|
||||
# Pager
|
||||
bind index,pager V edit-raw-message
|
||||
bind pager c imap-fetch-mail
|
||||
bind pager j next-line
|
||||
bind pager k previous-line
|
||||
|
|
|
|||
|
|
@ -30,10 +30,16 @@ set mail_check_stats
|
|||
set status_chars = " *%A"
|
||||
set status_format = "[ Folder: %D ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
|
||||
set date_format = "%d.%m.%Y %H:%M"
|
||||
|
||||
# set sort = date
|
||||
# set sort_aux = date
|
||||
set use_threads = threads
|
||||
set sort = date
|
||||
set sort_aux = date
|
||||
set sort_aux = date-received
|
||||
set sort_browser = reverse-date
|
||||
set uncollapse_jump
|
||||
set sort_re
|
||||
|
||||
set index_format = "%4C %Z %{%b %d} %-15.15L %?E?(%E)&? %s"
|
||||
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
||||
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||
|
|
@ -54,7 +60,7 @@ set tilde
|
|||
unset markers
|
||||
|
||||
# MTA (mail transfer agent)
|
||||
set sendmail = 'msmtpq --read-envelope-from --read-recipients'
|
||||
set sendmail = 'msmtp --read-envelope-from --read-recipients'
|
||||
|
||||
# Include keybindings
|
||||
source ~/.config/neomutt/keybinds
|
||||
|
|
@ -80,5 +86,8 @@ set nm_default_url = `echo "notmuch://$HOME/mail"`
|
|||
set nm_query_type = messages
|
||||
set nm_record_tags = "-inbox,sent"
|
||||
|
||||
# Source primary account (personal)
|
||||
source ~/.config/neomutt/accounts/personal
|
||||
# Source primary account (uchicago)
|
||||
source ~/.config/neomutt/accounts/uchicago
|
||||
|
||||
# # Source primary account (personal)
|
||||
# source ~/.config/neomutt/accounts/personal
|
||||
|
|
|
|||
|
|
@ -56,13 +56,47 @@ add 'fang2hou/blink-copilot'
|
|||
add 'aserowy/tmux.nvim'
|
||||
add 'NMAC427/guess-indent.nvim'
|
||||
add 'wakatime/vim-wakatime'
|
||||
add 'OXY2DEV/markview.nvim'
|
||||
|
||||
-- color themes
|
||||
add 'EdenEast/nightfox.nvim'
|
||||
|
||||
now(function()
|
||||
require('mail-count').setup {
|
||||
accounts = {
|
||||
{ name = 'U', query = 'tag:unread AND path:uchicago/**' },
|
||||
{ name = 'P', query = 'tag:unread AND path:personal/**' },
|
||||
},
|
||||
interval = 60000, -- 60 seconds
|
||||
}
|
||||
|
||||
require('mini.statusline').setup {
|
||||
use_icons = true,
|
||||
content = {
|
||||
active = function()
|
||||
local mode, mode_hl = MiniStatusline.section_mode { trunc_width = 120 }
|
||||
local git = MiniStatusline.section_git { trunc_width = 40 }
|
||||
local diff = MiniStatusline.section_diff { trunc_width = 75 }
|
||||
local diagnostics = MiniStatusline.section_diagnostics { trunc_width = 75 }
|
||||
local lsp = MiniStatusline.section_lsp { trunc_width = 75 }
|
||||
local filename = MiniStatusline.section_filename { trunc_width = 140 }
|
||||
local fileinfo = MiniStatusline.section_fileinfo { trunc_width = 120 }
|
||||
local location = MiniStatusline.section_location { trunc_width = 75 }
|
||||
local search = MiniStatusline.section_searchcount { trunc_width = 75 }
|
||||
local mail = require('mail-count').get()
|
||||
|
||||
return MiniStatusline.combine_groups {
|
||||
{ hl = mode_hl, strings = { mode } },
|
||||
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
|
||||
'%<',
|
||||
{ hl = 'MiniStatuslineFilename', strings = { filename } },
|
||||
'%=',
|
||||
{ hl = 'MiniStatuslineMail', strings = { mail } },
|
||||
{ hl = 'MiniStatuslineFileinfo', strings = { fileinfo } },
|
||||
{ hl = mode_hl, strings = { search, location } },
|
||||
}
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
require('mini.icons').setup {
|
||||
|
|
@ -286,7 +320,7 @@ later(function()
|
|||
require('blink.cmp').setup {
|
||||
keymap = {
|
||||
preset = 'none',
|
||||
['<C-space>'] = { 'show', 'show_documentation', 'hide_documentation' },
|
||||
['<C-y>'] = { 'show', 'show_documentation', 'hide_documentation' },
|
||||
['<C-e>'] = { 'hide' },
|
||||
['<CR>'] = { 'accept', 'fallback' },
|
||||
['<Tab>'] = {
|
||||
|
|
@ -314,6 +348,9 @@ later(function()
|
|||
},
|
||||
},
|
||||
completion = {
|
||||
trigger = {
|
||||
show_on_trigger_character = true,
|
||||
},
|
||||
menu = {
|
||||
enabled = true,
|
||||
border = 'rounded',
|
||||
|
|
@ -343,6 +380,22 @@ later(function()
|
|||
}
|
||||
end)
|
||||
|
||||
later(
|
||||
function()
|
||||
require('markview').setup {
|
||||
markdown_inline = {
|
||||
checkboxes = {
|
||||
checked = {
|
||||
text = '',
|
||||
hl = 'MarkviewCheckboxChecked',
|
||||
scope_hl = 'MarkviewCheckboxStriked',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
)
|
||||
|
||||
later(function()
|
||||
require('mason').setup {
|
||||
ui = {
|
||||
|
|
@ -362,6 +415,7 @@ later(function()
|
|||
'rust_analyzer', -- Rust
|
||||
'clangd', -- C/C++
|
||||
'copilot',
|
||||
'marksman', -- Markdown + Zettelkasten
|
||||
},
|
||||
automatic_installation = true,
|
||||
}
|
||||
|
|
@ -469,8 +523,15 @@ later(function()
|
|||
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
|
||||
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)
|
||||
|
||||
local map = function(mode, lhs, rhs, opts)
|
||||
|
|
|
|||
84
config/nvim/lua/mail-count.lua
Normal file
84
config/nvim/lua/mail-count.lua
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
-- mail-count.lua - Async mail count for statusline
|
||||
local M = {}
|
||||
|
||||
---@class MailCountAccount
|
||||
---@field name string Display name (e.g., "U" for uchicago)
|
||||
---@field query string Notmuch query for this account
|
||||
|
||||
---@class MailCountConfig
|
||||
---@field accounts MailCountAccount[] List of accounts to check
|
||||
---@field interval? number Check interval in milliseconds (default: 60000)
|
||||
---@field icon? string Icon to display (default: "")
|
||||
---@field hide_zero? boolean Hide when all counts are zero (default: false)
|
||||
|
||||
---@type MailCountConfig
|
||||
local config = {
|
||||
accounts = {},
|
||||
interval = 60000,
|
||||
icon = '',
|
||||
hide_zero = false,
|
||||
}
|
||||
|
||||
local counts = {}
|
||||
local last_check = 0
|
||||
local timer = nil
|
||||
|
||||
local function update_count(account)
|
||||
vim.fn.jobstart({ 'notmuch', 'count', account.query }, {
|
||||
stdout_buffered = true,
|
||||
on_stdout = function(_, data)
|
||||
if data and data[1] then counts[account.name] = tonumber(data[1]) or 0 end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
function M.refresh()
|
||||
for _, account in ipairs(config.accounts) do
|
||||
update_count(account)
|
||||
end
|
||||
last_check = vim.uv.now()
|
||||
end
|
||||
|
||||
function M.get()
|
||||
if #config.accounts == 0 then return '' end
|
||||
|
||||
local now = vim.uv.now()
|
||||
if now - last_check > config.interval then M.refresh() end
|
||||
|
||||
local total = 0
|
||||
local parts = {}
|
||||
for _, account in ipairs(config.accounts) do
|
||||
local count = counts[account.name] or 0
|
||||
total = total + count
|
||||
table.insert(parts, string.format('%s:%d', account.name, count))
|
||||
end
|
||||
|
||||
if config.hide_zero and total == 0 then return '' end
|
||||
|
||||
return string.format('%s %s', config.icon, table.concat(parts, ' | '))
|
||||
end
|
||||
|
||||
---@param opts? MailCountConfig
|
||||
function M.setup(opts)
|
||||
config = vim.tbl_deep_extend('force', config, opts or {})
|
||||
|
||||
-- Initialize counts
|
||||
for _, account in ipairs(config.accounts) do
|
||||
counts[account.name] = 0
|
||||
end
|
||||
|
||||
-- Initial fetch on load
|
||||
vim.schedule(function() M.refresh() end)
|
||||
|
||||
-- Stop existing timer if any
|
||||
if timer then
|
||||
timer:stop()
|
||||
timer:close()
|
||||
end
|
||||
|
||||
-- Refresh on timer
|
||||
timer = vim.uv.new_timer()
|
||||
timer:start(config.interval, config.interval, vim.schedule_wrap(function() M.refresh() end))
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -349,6 +349,7 @@ local function apply_highlights(c, opts)
|
|||
hi('MiniStatuslineFilename', { fg = c.fg, bg = c.bg_float })
|
||||
hi('MiniStatuslineFileinfo', { fg = c.fg, bg = c.bg_highlight })
|
||||
hi('MiniStatuslineInactive', { fg = c.fg_dark, bg = c.bg_float })
|
||||
hi('MiniStatuslineMail', { fg = c.bg, bg = c.info, bold = true })
|
||||
|
||||
-- Mini.icons
|
||||
hi('MiniIconsAzure', { fg = c.info })
|
||||
|
|
@ -389,6 +390,115 @@ local function apply_highlights(c, opts)
|
|||
hi('@markup.strikethrough', { strikethrough = 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
|
||||
if opts.overrides then
|
||||
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:set {
|
||||
label = os.date '%a %d %b, %H:%M',
|
||||
label = os.date '%a %d %b, %I:%M %p',
|
||||
}
|
||||
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
|
||||
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 ',*:smxx=\E[9m' # strikethrough support
|
||||
|
||||
setw -g automatic-rename on # rename window to reflect current program
|
||||
set -g renumber-windows on # renumber windows when a window is closed
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764407814,
|
||||
"narHash": "sha256-IiOWUqodFqzy4PhU6LcziwoJbbFR0AfaOBJDO83/mHM=",
|
||||
"lastModified": 1764744276,
|
||||
"narHash": "sha256-4Qrmb5+LLu2XWjW6XEbRHlRRCoKdUW4eWJ8N8pketn8=",
|
||||
"owner": "cristianoliveira",
|
||||
"repo": "aerospace-scratchpad",
|
||||
"rev": "d039cd49e2a15144c9a766509abe1b7f59eb6b04",
|
||||
"rev": "643bf206319f6f56437aff72b13a43bc06adc9ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
services.mbsync = {
|
||||
enable = config.custom.email.mbsync;
|
||||
configFile = "${dots}/config/mbsync/mbsyncrc";
|
||||
frequency = "*:0/1";
|
||||
frequency = "*:0/5";
|
||||
extraPackages = with pkgs; [ sops ] ++ lib.optionals config.custom.email.notmuch [ notmuch ];
|
||||
postExec = lib.mkIf config.custom.email.notmuch "${pkgs.notmuch}/bin/notmuch new";
|
||||
environment = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue