Compare commits
No commits in common. "937ab7e51078d7918d12418e82a93cba4b04ced1" and "380fa002c22cd99c9af324acdc735d742fd5f335" have entirely different histories.
937ab7e510
...
380fa002c2
20 changed files with 27 additions and 540 deletions
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Extract Message-ID from email and copy as neomutt:// link to clipboard
|
|
||||||
# Used by neomutt macro - reads email from stdin
|
|
||||||
|
|
||||||
message_id=$(grep -i '^Message-ID:' | head -1 | sed 's/Message-ID: *<//i; s/>//' | tr -d '\n\r')
|
|
||||||
|
|
||||||
if [[ -n $message_id ]]; then
|
|
||||||
printf 'neomutt://%s' "$message_id" | ~/dotfiles/bin/cb
|
|
||||||
fi
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Open a specific message in neomutt by message ID
|
|
||||||
# Usage: neomutt-open-message <message-id>
|
|
||||||
|
|
||||||
message_id="$1"
|
|
||||||
if [[ -z $message_id ]]; then
|
|
||||||
echo "Usage: neomutt-open-message <message-id>" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec neomutt -e "push \"<vfolder-from-query>id:${message_id}<enter><display-message>\""
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Inverse search callback for sioyek/vimtex/skim
|
|
||||||
# Usage: nvim-vimtex-callback LINE FILE
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
SERVERNAME_FILE="/tmp/vimtex-servername"
|
|
||||||
|
|
||||||
# Read servername if available and server still exists
|
|
||||||
SERVERNAME_ARG=""
|
|
||||||
if [[ -f $SERVERNAME_FILE ]]; then
|
|
||||||
SERVERNAME=$(cat "$SERVERNAME_FILE")
|
|
||||||
if [[ -n $SERVERNAME && -e $SERVERNAME ]]; then
|
|
||||||
SERVERNAME_ARG="--servername $SERVERNAME"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If first arg is a number, assume sioyek direct format: LINE FILE
|
|
||||||
if [[ $1 =~ ^[0-9]+$ ]]; then
|
|
||||||
LINE="$1"
|
|
||||||
FILE="$2"
|
|
||||||
exec "$SCRIPT_DIR/path-shim" nvr $SERVERNAME_ARG --remote-silent +"$LINE" "$FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Otherwise parse VimTeX format: --headless -c "VimtexInverseSearch LINE 'FILE'"
|
|
||||||
CMD=""
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case $1 in
|
|
||||||
--headless)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-c)
|
|
||||||
shift
|
|
||||||
CMD="$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -n $CMD ]]; then
|
|
||||||
if [[ $CMD =~ VimtexInverseSearch\ ([0-9]+)\ \'(.+)\' ]]; then
|
|
||||||
LINE="${BASH_REMATCH[1]}"
|
|
||||||
FILE="${BASH_REMATCH[2]}"
|
|
||||||
exec "$SCRIPT_DIR/path-shim" nvr $SERVERNAME_ARG --remote-silent +"$LINE" "$FILE"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Open a neomutt:// link in neomutt via notmuch
|
|
||||||
# Usage: open-message-link [--current] neomutt://message-id
|
|
||||||
# --current: Open in current terminal (for nvim integration)
|
|
||||||
# Without flag: Opens in Ghostty on workspace 8 (like open-mail)
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
open_in_current=false
|
|
||||||
if [[ ${1:-} == "--current" ]]; then
|
|
||||||
open_in_current=true
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
url="${1:-}"
|
|
||||||
if [[ -z $url ]]; then
|
|
||||||
echo "Usage: open-message-link [--current] neomutt://message-id" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extract message ID from URL
|
|
||||||
message_id="${url#neomutt://}"
|
|
||||||
notmuch_url="notmuch://?query=id:${message_id}"
|
|
||||||
|
|
||||||
if $open_in_current; then
|
|
||||||
exec neomutt -f "$notmuch_url"
|
|
||||||
else
|
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
|
||||||
aerospace workspace 8
|
|
||||||
open -na Ghostty --args -e "$SCRIPT_DIR/path-shim" "$SCRIPT_DIR/neomutt-open-message" "$message_id"
|
|
||||||
else
|
|
||||||
# Linux (i3/sway)
|
|
||||||
if command -v swaymsg &>/dev/null; then
|
|
||||||
swaymsg workspace 8
|
|
||||||
ghostty -e neomutt -e "push \"<vfolder-from-query>id:${message_id}<enter><display-message>\"" &
|
|
||||||
elif command -v i3-msg &>/dev/null; then
|
|
||||||
i3-msg workspace 8
|
|
||||||
ghostty -e neomutt -e "push \"<vfolder-from-query>id:${message_id}<enter><display-message>\"" &
|
|
||||||
else
|
|
||||||
exec neomutt -f "$notmuch_url"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
@ -28,23 +28,10 @@
|
||||||
;; (setq default-frame-alist '((ns-appearance . dark)
|
;; (setq default-frame-alist '((ns-appearance . dark)
|
||||||
;; (ns-transparent-titlebar . t)))
|
;; (ns-transparent-titlebar . t)))
|
||||||
|
|
||||||
;; Use dynamic GCC paths to avoid recompilation when Homebrew updates GCC
|
(setenv "LIBRARY_PATH"
|
||||||
(when-let* ((gcc-base "/opt/homebrew/opt/gcc/lib/gcc/current")
|
(mapconcat 'identity
|
||||||
((file-directory-p gcc-base)))
|
'(
|
||||||
(setenv "LIBRARY_PATH"
|
"/opt/homebrew/opt/gcc/lib/gcc/15"
|
||||||
(string-join
|
"/opt/homebrew/opt/libgccjit/lib/gcc/15"
|
||||||
(delq nil
|
"/opt/homebrew/opt/gcc/lib/gcc/15/gcc/aarch64-apple-darwin24/15")
|
||||||
(list gcc-base
|
":"))
|
||||||
(let ((jit-path "/opt/homebrew/opt/libgccjit/lib/gcc/current"))
|
|
||||||
(when (file-directory-p jit-path) jit-path))
|
|
||||||
;; Find the arch-specific directory (e.g., aarch64-apple-darwin24/15)
|
|
||||||
(car (last (file-expand-wildcards
|
|
||||||
(concat gcc-base "/gcc/aarch64-apple-darwin*/*"))))))
|
|
||||||
":")))
|
|
||||||
|
|
||||||
;; Native compilation settings to reduce unnecessary recompilation
|
|
||||||
(when (native-comp-available-p)
|
|
||||||
(setq native-comp-async-report-warnings-errors 'silent)
|
|
||||||
(setq native-compile-prune-cache t)
|
|
||||||
;; Redirect eln-cache to writable location (default goes to read-only ~/.emacs.d/)
|
|
||||||
(startup-redirect-eln-cache (expand-file-name "eln-cache/" minimal-emacs-var-dir)))
|
|
||||||
|
|
|
||||||
|
|
@ -81,9 +81,6 @@ bind compose S pgp-menu
|
||||||
macro compose a "<shell-escape>~/dotfiles/bin/yazi-pick-file<enter><enter-command>source /tmp/neomutt-yazi-pick<enter><shell-escape>~/dotfiles/bin/yazi-pick-file clean<enter>" "Attach file with yazi"
|
macro compose a "<shell-escape>~/dotfiles/bin/yazi-pick-file<enter><enter-command>source /tmp/neomutt-yazi-pick<enter><shell-escape>~/dotfiles/bin/yazi-pick-file clean<enter>" "Attach file with yazi"
|
||||||
bind compose d detach-file
|
bind compose d detach-file
|
||||||
|
|
||||||
# Copy message link to clipboard (message://message-id format)
|
|
||||||
macro index,pager Y "<pipe-message>~/dotfiles/bin/copy-message-link<enter>" "Copy message link"
|
|
||||||
|
|
||||||
# Mark messages
|
# Mark messages
|
||||||
bind index,pager m noop
|
bind index,pager m noop
|
||||||
macro index,pager mu "<enter-command>unset mark_old<enter><tag-prefix><toggle-new><sync-mailbox>" "Mark as unread"
|
macro index,pager mu "<enter-command>unset mark_old<enter><tag-prefix><toggle-new><sync-mailbox>" "Mark as unread"
|
||||||
|
|
|
||||||
|
|
@ -61,63 +61,10 @@ add { source = 'R-nvim/R.nvim', depends = { 'nvim-treesitter/nvim-treesitter' }
|
||||||
add 'nvim-treesitter/nvim-treesitter'
|
add 'nvim-treesitter/nvim-treesitter'
|
||||||
add 'nvim-treesitter/nvim-treesitter-textobjects'
|
add 'nvim-treesitter/nvim-treesitter-textobjects'
|
||||||
add { source = 'nvim-pack/nvim-spectre', depends = { 'nvim-lua/plenary.nvim' } }
|
add { source = 'nvim-pack/nvim-spectre', depends = { 'nvim-lua/plenary.nvim' } }
|
||||||
add 'lervag/vimtex'
|
|
||||||
|
|
||||||
-- color themes
|
-- color themes
|
||||||
add 'EdenEast/nightfox.nvim'
|
add 'EdenEast/nightfox.nvim'
|
||||||
|
|
||||||
now(function() require('vimtex').setup() end)
|
|
||||||
|
|
||||||
-- Message link handler for neomutt/notmuch integration
|
|
||||||
now(function()
|
|
||||||
local function open_neomutt_link(url)
|
|
||||||
local message_id = url:gsub('^neomutt://', '')
|
|
||||||
-- vim.notify('Opening: ' .. message_id, vim.log.levels.INFO)
|
|
||||||
-- Use vfolder-from-query then display the message (hide sidebar and index, q quits directly)
|
|
||||||
-- Note: nvim terminal doesn't support neomutt's directcolor, so we disable colors for clean display
|
|
||||||
local search_cmd = string.format(
|
|
||||||
[[neomutt -e "set color_directcolor=no sidebar_visible=no pager_index_lines=0" -e "color normal default default" -e "color hdrdefault default default" -e "color quoted default default" -e "color signature default default" -e "color attachment default default" -e "color header default default '.*'" -e "color body default default '.*'" -e "macro pager q '<exit><quit>'" -e "macro index q '<quit>'" -e "push \"<vfolder-from-query>id:%s<enter><display-message>\""]],
|
|
||||||
message_id
|
|
||||||
)
|
|
||||||
|
|
||||||
require('snacks').terminal(search_cmd, {
|
|
||||||
win = { position = 'bottom', height = 0.4 },
|
|
||||||
})
|
|
||||||
|
|
||||||
-- local script = vim.env.HOME .. '/dotfiles/bin/open-message-link'
|
|
||||||
-- vim.fn.jobstart({ script, url }, { detach = true })
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_create_user_command(
|
|
||||||
'OpenMessageLink',
|
|
||||||
function(opts) open_neomutt_link(opts.args) end,
|
|
||||||
{ nargs = 1, desc = 'Open email message link in neomutt' }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- gx override: opens neomutt:// links, falls back to default for others
|
|
||||||
-- Use BufEnter to override markview's buffer-local gx mapping
|
|
||||||
vim.api.nvim_create_autocmd('BufEnter', {
|
|
||||||
pattern = '*.md',
|
|
||||||
callback = function()
|
|
||||||
vim.keymap.set('n', 'gx', function()
|
|
||||||
local line = vim.api.nvim_get_current_line()
|
|
||||||
local url = line:match 'neomutt://[^%)%s>]+'
|
|
||||||
if url then
|
|
||||||
open_neomutt_link(url)
|
|
||||||
else
|
|
||||||
-- Use markview's link opener or fallback
|
|
||||||
local ok, markview = pcall(require, 'markview')
|
|
||||||
if ok and markview.actions and markview.actions.openLink then
|
|
||||||
markview.actions.openLink()
|
|
||||||
else
|
|
||||||
vim.ui.open(vim.fn.expand '<cfile>')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end, { buffer = true, desc = 'Open link (supports neomutt://)' })
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
|
|
||||||
now(function()
|
now(function()
|
||||||
require('mail-count').setup {
|
require('mail-count').setup {
|
||||||
accounts = {
|
accounts = {
|
||||||
|
|
@ -364,8 +311,6 @@ later(function()
|
||||||
'diff',
|
'diff',
|
||||||
'git_rebase',
|
'git_rebase',
|
||||||
'gitcommit',
|
'gitcommit',
|
||||||
'latex',
|
|
||||||
'bibtex',
|
|
||||||
},
|
},
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
|
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
-- VimTeX configuration
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M.setup()
|
|
||||||
-- Sioyek - cross-platform PDF viewer with vim-like keybindings
|
|
||||||
vim.g.vimtex_view_method = 'general'
|
|
||||||
vim.g.vimtex_view_general_viewer = 'sioyek'
|
|
||||||
vim.g.vimtex_view_general_options = '--forward-search-file @tex --forward-search-line @line @pdf'
|
|
||||||
|
|
||||||
-- Skim (macOS)
|
|
||||||
-- vim.g.vimtex_view_method = 'skim'
|
|
||||||
|
|
||||||
-- Compiler settings
|
|
||||||
vim.g.vimtex_compiler_method = 'latexmk'
|
|
||||||
vim.g.vimtex_compiler_latexmk = {
|
|
||||||
build_dir = 'build',
|
|
||||||
callback = 1,
|
|
||||||
continuous = 1,
|
|
||||||
executable = 'latexmk',
|
|
||||||
options = {
|
|
||||||
'-verbose',
|
|
||||||
'-file-line-error',
|
|
||||||
'-synctex=1',
|
|
||||||
'-interaction=nonstopmode',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Quickfix settings
|
|
||||||
vim.g.vimtex_quickfix_mode = 0 -- Don't open quickfix automatically
|
|
||||||
|
|
||||||
-- Disable default mappings, we'll set our own
|
|
||||||
vim.g.vimtex_mappings_enabled = 1
|
|
||||||
|
|
||||||
-- TOC settings
|
|
||||||
vim.g.vimtex_toc_config = {
|
|
||||||
split_pos = 'vert leftabove',
|
|
||||||
split_width = 40,
|
|
||||||
show_help = 0,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Fold settings
|
|
||||||
vim.g.vimtex_fold_enabled = 0
|
|
||||||
|
|
||||||
-- Set up filetype-specific keymaps
|
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
|
||||||
pattern = { 'tex', 'latex' },
|
|
||||||
callback = function()
|
|
||||||
local opts = { buffer = true, silent = true }
|
|
||||||
|
|
||||||
-- Compilation - saves servername for inverse search
|
|
||||||
vim.keymap.set('n', '<localleader>ll', function()
|
|
||||||
local f = io.open('/tmp/vimtex-servername', 'w')
|
|
||||||
if f then
|
|
||||||
f:write(vim.v.servername)
|
|
||||||
f:close()
|
|
||||||
end
|
|
||||||
vim.cmd 'VimtexCompile'
|
|
||||||
end, vim.tbl_extend('force', opts, { desc = 'Compile LaTeX' }))
|
|
||||||
vim.keymap.set('n', '<localleader>lk', '<cmd>VimtexStop<cr>', vim.tbl_extend('force', opts, { desc = 'Stop compilation' }))
|
|
||||||
vim.keymap.set('n', '<localleader>lc', '<cmd>VimtexClean<cr>', vim.tbl_extend('force', opts, { desc = 'Clean aux files' }))
|
|
||||||
vim.keymap.set('n', '<localleader>lC', '<cmd>VimtexClean!<cr>', vim.tbl_extend('force', opts, { desc = 'Clean all files' }))
|
|
||||||
|
|
||||||
-- View PDF (forward search)
|
|
||||||
vim.keymap.set('n', '<localleader>lv', '<cmd>VimtexView<cr>', vim.tbl_extend('force', opts, { desc = 'View PDF (forward search)' }))
|
|
||||||
|
|
||||||
-- TOC
|
|
||||||
vim.keymap.set('n', '<localleader>lt', '<cmd>VimtexTocToggle<cr>', vim.tbl_extend('force', opts, { desc = 'Toggle TOC' }))
|
|
||||||
|
|
||||||
-- Errors
|
|
||||||
vim.keymap.set('n', '<localleader>le', '<cmd>VimtexErrors<cr>', vim.tbl_extend('force', opts, { desc = 'Show errors' }))
|
|
||||||
|
|
||||||
-- Info
|
|
||||||
vim.keymap.set('n', '<localleader>li', '<cmd>VimtexInfo<cr>', vim.tbl_extend('force', opts, { desc = 'VimTeX info' }))
|
|
||||||
vim.keymap.set('n', '<localleader>ls', '<cmd>VimtexStatus<cr>', vim.tbl_extend('force', opts, { desc = 'Compilation status' }))
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
3
config/sioyek/.gitignore
vendored
3
config/sioyek/.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
||||||
*.db
|
|
||||||
auto.config
|
|
||||||
*.txt
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
# Sioyek user keybindings
|
|
||||||
# Vim-like keybindings
|
|
||||||
|
|
||||||
# Navigation - use visual mark commands (works as scroll when no mark exists)
|
|
||||||
move_visual_mark_down j
|
|
||||||
move_visual_mark_up k
|
|
||||||
move_left h
|
|
||||||
move_right l
|
|
||||||
|
|
||||||
# Page navigation
|
|
||||||
next_page J
|
|
||||||
previous_page K
|
|
||||||
screen_down <C-d>
|
|
||||||
screen_up <C-u>
|
|
||||||
screen_down <C-f>
|
|
||||||
screen_up <C-b>
|
|
||||||
goto_page_with_page_number <C-g>
|
|
||||||
goto_beginning gg
|
|
||||||
goto_end G
|
|
||||||
|
|
||||||
# Chapter navigation (like vim [[ ]])
|
|
||||||
next_chapter ]]
|
|
||||||
prev_chapter [[
|
|
||||||
|
|
||||||
# History navigation (like vim jumplist)
|
|
||||||
prev_state <C-o>
|
|
||||||
next_state <tab>
|
|
||||||
|
|
||||||
# Scroll
|
|
||||||
screen_down <space>
|
|
||||||
screen_up <S-space>
|
|
||||||
|
|
||||||
# Search
|
|
||||||
search /
|
|
||||||
next_item n
|
|
||||||
prev_item N
|
|
||||||
|
|
||||||
# Copy
|
|
||||||
copy y
|
|
||||||
|
|
||||||
# Command mode
|
|
||||||
command :
|
|
||||||
|
|
||||||
# Zoom
|
|
||||||
zoom_in +
|
|
||||||
zoom_in =
|
|
||||||
zoom_out -
|
|
||||||
fit_to_page_width w
|
|
||||||
fit_to_page_width_smart e
|
|
||||||
|
|
||||||
# Bookmarks
|
|
||||||
add_bookmark m
|
|
||||||
goto_bookmark '
|
|
||||||
delete_bookmark dm
|
|
||||||
|
|
||||||
# Highlights - mouse select text, then h + letter for color
|
|
||||||
add_highlight H
|
|
||||||
goto_next_highlight ]h
|
|
||||||
goto_prev_highlight [h
|
|
||||||
delete_highlight dh
|
|
||||||
|
|
||||||
# Table of contents
|
|
||||||
goto_toc t
|
|
||||||
|
|
||||||
# Visual mark - right-click or v to create, then j/k to move
|
|
||||||
visual_mark_under_cursor v
|
|
||||||
toggle_visual_scroll <F7>
|
|
||||||
|
|
||||||
# Synctex (for LaTeX integration)
|
|
||||||
# F4 toggles synctex mode, then right-click on text jumps to source
|
|
||||||
# Use v to start visual mark, then Enter to jump to source in editor
|
|
||||||
toggle_synctex <F4>
|
|
||||||
synctex_under_ruler <return>
|
|
||||||
|
|
||||||
# Color mode toggle
|
|
||||||
toggle_dark_mode <C-i>
|
|
||||||
toggle_custom_color <C-r>
|
|
||||||
|
|
||||||
# Open/close
|
|
||||||
quit q
|
|
||||||
quit ZZ
|
|
||||||
quit ZQ
|
|
||||||
open_document o
|
|
||||||
|
|
||||||
# View
|
|
||||||
rotate_clockwise r
|
|
||||||
rotate_counterclockwise R
|
|
||||||
toggle_fullscreen F
|
|
||||||
|
|
||||||
# Portal (linked view)
|
|
||||||
portal p
|
|
||||||
|
|
||||||
# Overview (thumbnail view)
|
|
||||||
overview <S-tab>
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
# Sioyek user preferences
|
|
||||||
# Noctis Azureus Ghostty theme
|
|
||||||
|
|
||||||
# Precise hex to RGB (0.0-1.0) conversions:
|
|
||||||
# #051b29 -> 5/255=0.0196, 27/255=0.1059, 41/255=0.1608
|
|
||||||
# #041520 -> 4/255=0.0157, 21/255=0.0824, 32/255=0.1255
|
|
||||||
# #becfda -> 190/255=0.7451, 207/255=0.8118, 218/255=0.8549
|
|
||||||
# #49e9a6 -> 73/255=0.2863, 233/255=0.9137, 166/255=0.6510
|
|
||||||
# #e4b781 -> 228/255=0.8941, 183/255=0.7176, 129/255=0.5059
|
|
||||||
# #49ace9 -> 73/255=0.2863, 172/255=0.6745, 233/255=0.9137
|
|
||||||
|
|
||||||
# Background - deep blue #051b29
|
|
||||||
background_color 0.0196 0.1059 0.1608
|
|
||||||
dark_mode_background_color 0.0196 0.1059 0.1608
|
|
||||||
dark_mode_contrast 1.0
|
|
||||||
|
|
||||||
# Custom color mode (toggle with Ctrl+r)
|
|
||||||
custom_background_color 0.0196 0.1059 0.1608
|
|
||||||
custom_text_color 0.7451 0.8118 0.8549
|
|
||||||
|
|
||||||
# Search highlight (green #49e9a6)
|
|
||||||
search_highlight_color 0.2863 0.9137 0.6510
|
|
||||||
|
|
||||||
# Link color (blue #49ace9)
|
|
||||||
link_highlight_color 0.2863 0.6745 0.9137
|
|
||||||
|
|
||||||
# Text selection/highlight (yellow #e4b781)
|
|
||||||
text_highlight_color 0.8941 0.7176 0.5059
|
|
||||||
|
|
||||||
# Page separator
|
|
||||||
page_separator_width 2
|
|
||||||
page_separator_color 0.1569 0.2078 0.2431
|
|
||||||
|
|
||||||
# Status bar - darker blue #041520
|
|
||||||
ui_background_color 0.0157 0.0824 0.1255
|
|
||||||
ui_text_color 0.7451 0.8118 0.8549
|
|
||||||
|
|
||||||
# Startup - use custom color mode and enable synctex by default
|
|
||||||
should_launch_new_window 0
|
|
||||||
startup_commands toggle_custom_color;toggle_synctex
|
|
||||||
|
|
||||||
# Smooth scrolling
|
|
||||||
smooth_scroll_speed 3.0
|
|
||||||
smooth_scroll_drag 2500
|
|
||||||
|
|
||||||
# Zoom
|
|
||||||
default_zoom_level 1.0
|
|
||||||
zoom_inc_factor 1.2
|
|
||||||
|
|
||||||
# Inverse search - click PDF to jump to Neovim source
|
|
||||||
# %1 = filename, %2 = line number
|
|
||||||
inverse_search_command /Users/rayandrew/dotfiles/bin/nvim-vimtex-callback %2 %1
|
|
||||||
|
|
||||||
# Control+click triggers synctex inverse search
|
|
||||||
control_click_command synctex_under_cursor
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
# Noctis Azureus Ghostty theme for Zathura
|
|
||||||
|
|
||||||
set default-bg "#051b29"
|
|
||||||
set default-fg "#becfda"
|
|
||||||
|
|
||||||
set statusbar-bg "#041520"
|
|
||||||
set statusbar-fg "#becfda"
|
|
||||||
|
|
||||||
set inputbar-bg "#051b29"
|
|
||||||
set inputbar-fg "#becfda"
|
|
||||||
|
|
||||||
set notification-bg "#051b29"
|
|
||||||
set notification-fg "#49e9a6"
|
|
||||||
set notification-error-bg "#051b29"
|
|
||||||
set notification-error-fg "#e66533"
|
|
||||||
set notification-warning-bg "#051b29"
|
|
||||||
set notification-warning-fg "#e4b781"
|
|
||||||
|
|
||||||
set highlight-color "#e4b781"
|
|
||||||
set highlight-active-color "#49e9a6"
|
|
||||||
|
|
||||||
set completion-bg "#041520"
|
|
||||||
set completion-fg "#becfda"
|
|
||||||
set completion-highlight-bg "#0c3f5f"
|
|
||||||
set completion-highlight-fg "#becfda"
|
|
||||||
|
|
||||||
set index-bg "#051b29"
|
|
||||||
set index-fg "#becfda"
|
|
||||||
set index-active-bg "#0c3f5f"
|
|
||||||
set index-active-fg "#becfda"
|
|
||||||
|
|
||||||
set render-loading-bg "#051b29"
|
|
||||||
set render-loading-fg "#becfda"
|
|
||||||
|
|
||||||
# Recolor settings (inverts PDF colors to match theme)
|
|
||||||
set recolor "true"
|
|
||||||
# set recolor-reverse-video "true"
|
|
||||||
set recolor-keephue "true"
|
|
||||||
set recolor-lightcolor "#051b29"
|
|
||||||
set recolor-darkcolor "#becfda"
|
|
||||||
# set recolor-keephue "false"
|
|
||||||
|
|
||||||
# Selection settings
|
|
||||||
set selection-clipboard clipboard
|
|
||||||
set selection-notification true
|
|
||||||
|
|
||||||
# Synctex inverse search (Ctrl+click in PDF jumps to source)
|
|
||||||
set synctex true
|
|
||||||
set synctex-editor-command "~/dotfiles/bin/path-shim nvr --remote-silent +%{line} %{input}"
|
|
||||||
|
|
@ -66,7 +66,6 @@
|
||||||
valgrind = mkEnableOption "Enable valgrind";
|
valgrind = mkEnableOption "Enable valgrind";
|
||||||
hammerspoon = mkEnableOption "Enable hammerspoon";
|
hammerspoon = mkEnableOption "Enable hammerspoon";
|
||||||
aerospace = mkEnableOption "Enable aerospace";
|
aerospace = mkEnableOption "Enable aerospace";
|
||||||
skim = mkEnableOption "Enable skim";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
|
|
@ -390,10 +389,5 @@
|
||||||
"aerospace"
|
"aerospace"
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
(lib.mkIf config.custom.brew.skim {
|
|
||||||
homebrew.casks = [
|
|
||||||
"skim"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,6 @@
|
||||||
./hammerspoon.nix
|
./hammerspoon.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./ghostty.nix
|
./ghostty.nix
|
||||||
./zathura.nix
|
|
||||||
./sioyek.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
options.custom.gui = with lib; {
|
options.custom.gui = with lib; {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(neovim.override { withNodeJs = true; })
|
(neovim.override { withNodeJs = true; })
|
||||||
tree-sitter
|
tree-sitter
|
||||||
neovim-remote
|
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/nvim";
|
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/nvim";
|
||||||
|
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
dots,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.custom.gui = with lib; {
|
|
||||||
sioyek = {
|
|
||||||
enable = mkEnableOption "Enable sioyek";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.custom.gui.sioyek.enable (
|
|
||||||
lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
sioyek
|
|
||||||
];
|
|
||||||
}
|
|
||||||
# Linux uses ~/.config/sioyek
|
|
||||||
(lib.mkIf pkgs.stdenv.isLinux {
|
|
||||||
xdg.configFile."sioyek".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek";
|
|
||||||
})
|
|
||||||
# macOS uses ~/Library/Application Support/sioyek
|
|
||||||
(lib.mkIf pkgs.stdenv.isDarwin {
|
|
||||||
home.file."Library/Application Support/sioyek".source =
|
|
||||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek";
|
|
||||||
})
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
dots,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.custom.gui = with lib; {
|
|
||||||
zathura = {
|
|
||||||
enable = mkEnableOption "Enable zathura";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.custom.gui.zathura.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
zathura
|
|
||||||
];
|
|
||||||
xdg.configFile."zathura".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/zathura";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -67,7 +67,6 @@
|
||||||
valgrind = false;
|
valgrind = false;
|
||||||
hammerspoon = true;
|
hammerspoon = true;
|
||||||
aerospace = true;
|
aerospace = true;
|
||||||
skim = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -100,8 +99,6 @@
|
||||||
ghostty.enable = true;
|
ghostty.enable = true;
|
||||||
hammerspoon.enable = true;
|
hammerspoon.enable = true;
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
zathura.enable = true;
|
|
||||||
sioyek.enable = true;
|
|
||||||
};
|
};
|
||||||
email = {
|
email = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
13
packages/minimal-emacs-d/030825-init-file-debug.patch
Normal file
13
packages/minimal-emacs-d/030825-init-file-debug.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/early-init.el b/early-init.el
|
||||||
|
index dfea2f0..d60b6ef 100644
|
||||||
|
--- a/early-init.el
|
||||||
|
+++ b/early-init.el
|
||||||
|
@@ -32,7 +32,7 @@ turned on.")
|
||||||
|
(defvar minimal-emacs-frame-title-format "%b – Emacs"
|
||||||
|
"Template for displaying the title bar of visible and iconified frame.")
|
||||||
|
|
||||||
|
-(defvar minimal-emacs-debug (bound-and-true-p init-file-debug)
|
||||||
|
+(defvar minimal-emacs-debug nil
|
||||||
|
"Non-nil to enable debug.")
|
||||||
|
|
||||||
|
(defvar minimal-emacs-gc-cons-threshold (* 16 1024 1024)
|
||||||
|
|
@ -14,10 +14,15 @@ stdenv.mkDerivation {
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "jamescherti";
|
owner = "jamescherti";
|
||||||
repo = "minimal-emacs.d";
|
repo = "minimal-emacs.d";
|
||||||
rev = "4b43566ec9bc9b1a68e288b955d673d0ab68ddd9";
|
rev = "e44aa459d5eb5af2f868dc490e4d05efca308915";
|
||||||
sha256 = "sha256-Z4NgOrwNXuQKIEh4Z/H324sK3zVY3AdxwOUFUSkXta4=";
|
# rev = "08f077545a0f45a1701333406fd1afe8be77a752";
|
||||||
|
sha256 = "sha256-ABHv+TUQpBoXkg75iL2ROJoGjT+iUZQHZD9b4Z8Q4kQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./030825-init-file-debug.patch
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir $out
|
mkdir $out
|
||||||
cp -r * "$out/"
|
cp -r * "$out/"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue