Compare commits
21 Commits
352e5e81fc
...
arch-deskt
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6fe1d9f38 | ||
|
|
a2c7b5033a | ||
|
|
6650ab1d5c | ||
|
|
cc5246f38b | ||
|
|
cb21d62153 | ||
|
|
f2fa6c1267 | ||
|
|
e104c9b8ce | ||
|
|
ce01877872 | ||
|
|
a3412c9fdf | ||
|
|
e99901146d | ||
|
|
dc51e2b8d8 | ||
|
|
9fd41c75ef | ||
|
|
adcecd9d62 | ||
|
|
ade4c9f47c | ||
|
|
82c55b55c7 | ||
|
|
8ba5349c5d | ||
|
|
c16dc3b450 | ||
|
|
924c01282d | ||
|
|
7a7b0e3f1c | ||
|
|
cfb88473fc | ||
|
|
32760db44f |
@@ -18,11 +18,5 @@ test -r '/home/mikec/.opam/opam-init/init.sh' && . '/home/mikec/.opam/opam-init/
|
|||||||
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||||
exec river
|
exec river
|
||||||
fi
|
fi
|
||||||
HOMEBREW_PREFIX=/opt/homebrew
|
|
||||||
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
|
|
||||||
export CPATH="$HOMEBREW_PREFIX/include:$CPATH"
|
|
||||||
export LIBRARY_PATH="$HOMEBREW_PREFIX/lib:$LIBRARY_PATH"
|
|
||||||
. "/Users/mikec/.local/share/bob/env/env.sh"
|
|
||||||
|
|
||||||
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
|
|
||||||
|
|
||||||
|
. "/home/mikec/.local/share/bob/env/env.sh"
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
;;
|
;;
|
||||||
;; (setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
;; (setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||||
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
||||||
(setq doom-font (font-spec :family "Iosevka Term SS12" :size 16))
|
(setq doom-font (font-spec :family "Iosevka Term SS12" :size 18))
|
||||||
;;
|
;;
|
||||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
||||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||||
;; `load-theme' function. This is the default:
|
;; `load-theme' function. This is the default:
|
||||||
(setq doom-theme 'doom-one)
|
;; (setq doom-theme 'doom-one)
|
||||||
|
|
||||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
;; (setq! tab-always-indent nil)
|
;; (setq! tab-always-indent nil)
|
||||||
(after! corfu
|
(after! corfu
|
||||||
(setq tab-always-indent nil))
|
(setq! tab-always-indent nil))
|
||||||
;; (map! :map corfu-map :i "TAB" nil)
|
;; (map! :map corfu-map :i "TAB" nil)
|
||||||
;; (map! :map corfu-map "TAB" nil)
|
;; (map! :map corfu-map "TAB" nil)
|
||||||
;; (map! :map corfu-map :i "S-TAB" nil)
|
;; (map! :map corfu-map :i "S-TAB" nil)
|
||||||
@@ -93,7 +93,6 @@
|
|||||||
;; (map! :map corfu-map :i "C-g" #'corfu-reset)
|
;; (map! :map corfu-map :i "C-g" #'corfu-reset)
|
||||||
;; (setq +corfu-want-ret-to-confirm nil)
|
;; (setq +corfu-want-ret-to-confirm nil)
|
||||||
|
|
||||||
|
|
||||||
(use-package! auto-dark
|
(use-package! auto-dark
|
||||||
:defer t
|
:defer t
|
||||||
:init
|
:init
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
indent-guides ; highlighted indent columns
|
indent-guides ; highlighted indent columns
|
||||||
;;ligatures ; ligatures and symbols to make your code pretty again
|
;;ligatures ; ligatures and symbols to make your code pretty again
|
||||||
;;minimap ; show a map of the code on the side
|
;;minimap ; show a map of the code on the side
|
||||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
;; modeline ; snazzy, Atom-inspired modeline, plus API
|
||||||
;;nav-flash ; blink cursor line after big motions
|
;;nav-flash ; blink cursor line after big motions
|
||||||
;;neotree ; a project drawer, like NERDTree for vim
|
;;neotree ; a project drawer, like NERDTree for vim
|
||||||
ophints ; highlight the region an operation acts on
|
ophints ; highlight the region an operation acts on
|
||||||
@@ -46,15 +46,15 @@
|
|||||||
smooth-scroll ; So smooth you won't believe it's not butter
|
smooth-scroll ; So smooth you won't believe it's not butter
|
||||||
;;tabs ; a tab bar for Emacs
|
;;tabs ; a tab bar for Emacs
|
||||||
;;treemacs ; a project drawer, like neotree but cooler
|
;;treemacs ; a project drawer, like neotree but cooler
|
||||||
;;unicode ; extended unicode support for various languages
|
unicode ; extended unicode support for various languages
|
||||||
(vc-gutter +pretty) ; vcs diff in the fringe
|
(vc-gutter +pretty) ; vcs diff in the fringe
|
||||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||||
;;window-select ; visually switch windows
|
;;window-select ; visually switch windows
|
||||||
workspaces ; tab emulation, persistence & separate workspaces
|
;; workspaces ; tab emulation, persistence & separate workspaces
|
||||||
;;zen ; distraction-free coding or writing
|
zen ; distraction-free coding or writing
|
||||||
|
|
||||||
:editor
|
:editor
|
||||||
;; (evil +everywhere); come to the dark side, we have cookies
|
(evil +everywhere); come to the dark side, we have cookies
|
||||||
file-templates ; auto-snippets for empty files
|
file-templates ; auto-snippets for empty files
|
||||||
fold ; (nigh) universal code folding
|
fold ; (nigh) universal code folding
|
||||||
(format +onsave) ; automated prettiness
|
(format +onsave) ; automated prettiness
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
;;lispy ; vim for lisp, for people who don't like vim
|
;;lispy ; vim for lisp, for people who don't like vim
|
||||||
multiple-cursors ; editing in many places at once
|
multiple-cursors ; editing in many places at once
|
||||||
;;objed ; text object editing for the innocent
|
;;objed ; text object editing for the innocent
|
||||||
;;parinfer ; turn lisp into python, sort of
|
parinfer ; turn lisp into python, sort of
|
||||||
;;rotate-text ; cycle region at point between text candidates
|
;;rotate-text ; cycle region at point between text candidates
|
||||||
snippets ; my elves. They type so I don't have to
|
snippets ; my elves. They type so I don't have to
|
||||||
;; (whitespace +guess +trim) ; a butler for your whitespace
|
;; (whitespace +guess +trim) ; a butler for your whitespace
|
||||||
@@ -81,11 +81,11 @@
|
|||||||
eshell ; the elisp shell that works everywhere
|
eshell ; the elisp shell that works everywhere
|
||||||
;;shell ; simple shell REPL for Emacs
|
;;shell ; simple shell REPL for Emacs
|
||||||
;;term ; basic terminal emulator for Emacs
|
;;term ; basic terminal emulator for Emacs
|
||||||
vterm ; the best terminal emulation in Emacs
|
;; vterm ; the best terminal emulation in Emacs
|
||||||
|
|
||||||
:checkers
|
:checkers
|
||||||
syntax ; tasing you for every semicolon you forget
|
syntax ; tasing you for every semicolon you forget
|
||||||
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
(spell +flyspell) ; tasing you for misspelling mispelling
|
||||||
;;grammar ; tasing grammar mistake every you make
|
;;grammar ; tasing grammar mistake every you make
|
||||||
|
|
||||||
:tools
|
:tools
|
||||||
@@ -100,8 +100,8 @@
|
|||||||
(eval +overlay) ; run code, run (also, repls)
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
(lookup +dictionary +offline) ; navigate your code and its documentation
|
(lookup +dictionary +offline) ; navigate your code and its documentation
|
||||||
;;llm ; when I said you needed friends, I didn't mean...
|
;;llm ; when I said you needed friends, I didn't mean...
|
||||||
(lsp +lsp) ; M-x vscode
|
(lsp +eglot) ; M-x vscode
|
||||||
magit ; a git porcelain for Emacs
|
(magit +forge) ; a git porcelain for Emacs
|
||||||
;;make ; run make tasks from Emacs
|
;;make ; run make tasks from Emacs
|
||||||
;;pass ; password manager for nerds
|
;;pass ; password manager for nerds
|
||||||
;;pdf ; pdf enhancements
|
;;pdf ; pdf enhancements
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
;;beancount ; mind the GAAP
|
;;beancount ; mind the GAAP
|
||||||
(cc +lsp +tree-sitter) ; C > C++ == 1
|
(cc +lsp +tree-sitter) ; C > C++ == 1
|
||||||
;;clojure ; java with a lisp
|
;;clojure ; java with a lisp
|
||||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
common-lisp ; if you've seen one lisp, you've seen them all
|
||||||
;;coq ; proofs-as-programs
|
;;coq ; proofs-as-programs
|
||||||
;;crystal ; ruby at the speed of c
|
;;crystal ; ruby at the speed of c
|
||||||
;;csharp ; unity, .NET, and mono shenanigans
|
;;csharp ; unity, .NET, and mono shenanigans
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
;;lean ; for folks with too much to prove
|
;;lean ; for folks with too much to prove
|
||||||
;;ledger ; be audit you can be
|
;;ledger ; be audit you can be
|
||||||
;;lua ; one-based indices? one-based indices
|
;;lua ; one-based indices? one-based indices
|
||||||
markdown ; writing docs for people to ignore
|
(markdown +grip +tree-sitter) ; writing docs for people to ignore
|
||||||
;;nim ; python + lisp at the speed of c
|
;;nim ; python + lisp at the speed of c
|
||||||
;;nix ; I hereby declare "nix geht mehr!"
|
;;nix ; I hereby declare "nix geht mehr!"
|
||||||
;;ocaml ; an objective camel
|
;;ocaml ; an objective camel
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
;;solidity ; do you need a blockchain? No.
|
;;solidity ; do you need a blockchain? No.
|
||||||
(swift +lsp +tree-sitter); who asked for emoji variables?
|
(swift +lsp +tree-sitter); who asked for emoji variables?
|
||||||
;;terra ; Earth and Moon in alignment for performance.
|
;;terra ; Earth and Moon in alignment for performance.
|
||||||
;;web ; the tubes
|
(web +lsp +tree-sitter) ; the tubes
|
||||||
;;yaml ; JSON, but readable
|
;;yaml ; JSON, but readable
|
||||||
(zig +lsp +tree-sitter) ; C, but simpler
|
(zig +lsp +tree-sitter) ; C, but simpler
|
||||||
|
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ dataSourceCommonSettings\activeState=true
|
|||||||
dataSourceCommonSettings\activeState=true
|
dataSourceCommonSettings\activeState=true
|
||||||
|
|
||||||
[UserFeedback]
|
[UserFeedback]
|
||||||
ApplicationStartCount=137
|
ApplicationStartCount=141
|
||||||
ApplicationTime=622
|
ApplicationTime=705
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ dataSourceCommonSettings\activeState=true
|
|||||||
dataSourceCommonSettings\activeState=true
|
dataSourceCommonSettings\activeState=true
|
||||||
|
|
||||||
[UserFeedback]
|
[UserFeedback]
|
||||||
ApplicationStartCount=3
|
ApplicationStartCount=72
|
||||||
ApplicationTime=35142
|
ApplicationTime=68724
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ dataSourceCommonSettings\activeState=true
|
|||||||
dataSourceCommonSettings\activeState=true
|
dataSourceCommonSettings\activeState=true
|
||||||
|
|
||||||
[UserFeedback]
|
[UserFeedback]
|
||||||
ApplicationStartCount=1
|
ApplicationStartCount=18
|
||||||
ApplicationTime=14
|
ApplicationTime=16794
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
[UserFeedback]
|
[UserFeedback]
|
||||||
ApplicationStartCount=1
|
ApplicationStartCount=18
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ dataSourceCommonSettings\activeState=true
|
|||||||
dataSourceCommonSettings\activeState=true
|
dataSourceCommonSettings\activeState=true
|
||||||
|
|
||||||
[UserFeedback]
|
[UserFeedback]
|
||||||
ApplicationStartCount=210
|
ApplicationStartCount=260
|
||||||
ApplicationTime=2008695
|
ApplicationTime=2430104
|
||||||
LastEncouragement=@DateTime(\0\0\0\x10\0\0\0\0\0\0%\x87}\x4\n\x84\xab\0)
|
LastEncouragement=@DateTime(\0\0\0\x10\0\0\0\0\0\0%\x87}\x4\n\x84\xab\0)
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -44,7 +44,7 @@ vim.g.mapleader = ' '
|
|||||||
|
|
||||||
vim.g.neovide_scale_factor = 1.0
|
vim.g.neovide_scale_factor = 1.0
|
||||||
vim.g.neovide_theme = 'auto'
|
vim.g.neovide_theme = 'auto'
|
||||||
vim.g.neovide_transparency = 1.0
|
vim.g.neovide_opacity = 1.0
|
||||||
function ChangeScaleFactor(delta)
|
function ChangeScaleFactor(delta)
|
||||||
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
|
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
|
||||||
end
|
end
|
||||||
@@ -56,7 +56,7 @@ vim.keymap.set('n', '<C-->', function()
|
|||||||
ChangeScaleFactor(1 / 1.25)
|
ChangeScaleFactor(1 / 1.25)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
vim.opt.guifont = { 'Iosevka Term SS12', ':h12' }
|
vim.opt.guifont = { 'Iosevka Term SS12', ':h14' }
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
vim.g.netrw_keepdir = 0
|
vim.g.netrw_keepdir = 0
|
||||||
@@ -82,6 +82,6 @@ vim.lsp.config('lua_ls', {
|
|||||||
vim.lsp.config('tinymist', {
|
vim.lsp.config('tinymist', {
|
||||||
settings = {
|
settings = {
|
||||||
exportPdf = "onType",
|
exportPdf = "onType",
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
vim.diagnostic.config({ update_in_insert = true, float = true, virtual_lines = true})
|
vim.diagnostic.config({ update_in_insert = true, float = true, virtual_lines = true})
|
||||||
|
|||||||
@@ -49,5 +49,16 @@ return {
|
|||||||
version = "*", -- Pin Neorg to the latest stable release
|
version = "*", -- Pin Neorg to the latest stable release
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- {
|
||||||
|
-- "Olical/conjure"
|
||||||
|
-- },
|
||||||
|
|
||||||
|
{
|
||||||
|
"vlime/vlime",
|
||||||
|
config = function(plugin)
|
||||||
|
vim.opt.rtp:append(plugin.dir .. '/vim/')
|
||||||
|
end
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1 @@
|
|||||||
;;; -*- lexical-binding: t -*-
|
;;; -*- lexical-binding: t -*-
|
||||||
(custom-set-variables
|
|
||||||
;; custom-set-variables was added by Custom.
|
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
|
||||||
'(custom-safe-themes
|
|
||||||
'("720838034f1dd3b3da66f6bd4d053ee67c93a747b219d1c546c41c4e425daf93"
|
|
||||||
"d481904809c509641a1a1f1b1eb80b94c58c210145effc2631c1a7f2e4a2fdf4"
|
|
||||||
"aec7b55f2a13307a55517fdf08438863d694550565dee23181d2ebd973ebd6b8"
|
|
||||||
"3613617b9953c22fe46ef2b593a2e5bc79ef3cc88770602e7e569bbd71de113b"
|
|
||||||
"0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1"
|
|
||||||
default)))
|
|
||||||
(custom-set-faces
|
|
||||||
;; custom-set-faces was added by Custom.
|
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -19,12 +19,25 @@
|
|||||||
;;
|
;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(set-face-attribute 'default nil
|
||||||
|
:width 'normal :weight 'normal
|
||||||
|
:slant 'normal :font (font-spec :family "Iosevka Term SS12" :size 18))
|
||||||
|
(set-face-attribute 'fixed-pitch nil
|
||||||
|
:width 'normal :weight 'normal
|
||||||
|
:slant 'normal :font (font-spec :family "Iosevka Term SS12" :size 18))
|
||||||
|
(set-face-attribute 'variable-pitch nil
|
||||||
|
:width 'normal :weight 'normal
|
||||||
|
:slant 'normal :font (font-spec :family "Gentium Plus" :size 18))
|
||||||
|
(defconst default-mode-line-format (copy-sequence mode-line-format))
|
||||||
(setq history-length 100
|
(setq history-length 100
|
||||||
global-auto-revert-non-file-buffers t
|
global-auto-revert-non-file-buffers t
|
||||||
use-dialog-box nil
|
use-dialog-box nil
|
||||||
custom-safe-themes t
|
custom-safe-themes t
|
||||||
|
make-backup-files nil
|
||||||
read-file-name-completion-ignore-case t
|
read-file-name-completion-ignore-case t
|
||||||
tab-always-indent nil)
|
tab-always-indent nil
|
||||||
|
display-buffer-alist '(
|
||||||
|
("\\*elfeed-.*\\*" (display-buffer-same-window))))
|
||||||
(setq-default
|
(setq-default
|
||||||
indent-tabs-mode nil
|
indent-tabs-mode nil
|
||||||
tab-width 4
|
tab-width 4
|
||||||
|
|||||||
@@ -1,16 +1,20 @@
|
|||||||
;;; -*- lexical-binding: t; -*-
|
;;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(global-set-key (kbd "C-c f") #'consult-fd)
|
(global-set-key (kbd "C-c f") #'consult-fd)
|
||||||
|
(global-set-key (kbd "C-c C-f") #'find-file-at-point)
|
||||||
(global-set-key (kbd "C-c r") #'recentf)
|
(global-set-key (kbd "C-c r") #'recentf)
|
||||||
|
(global-set-key (kbd "C-c x") #'kill-current-buffer)
|
||||||
|
(global-set-key (kbd "C-c X") (lambda () (interactive) (other-window 1) (kill-buffer-and-window)))
|
||||||
(global-set-key (kbd "C-c g") #'consult-ripgrep)
|
(global-set-key (kbd "C-c g") #'consult-ripgrep)
|
||||||
|
(global-set-key (kbd "C-c L") #'consult-line)
|
||||||
(global-set-key (kbd "C-c i") #'consult-info)
|
(global-set-key (kbd "C-c i") #'consult-info)
|
||||||
(global-set-key (kbd "C-c s") #'ispell-word)
|
(global-set-key (kbd "C-c s") #'ispell-word)
|
||||||
(global-set-key (kbd "C-c f") #'apheleia-format-buffer)
|
|
||||||
(global-set-key (kbd "C-c t") #'load-theme)
|
(global-set-key (kbd "C-c t") #'load-theme)
|
||||||
(global-set-key (kbd "C-c C-c") #'compile)
|
(global-set-key (kbd "C-c C-c") #'compile)
|
||||||
(global-set-key (kbd "C-c d") #'dictionary-define-word)
|
(global-set-key (kbd "C-c d") #'dictionary-define-word)
|
||||||
(global-set-key (kbd "C-c D") #'dictionary)
|
(global-set-key (kbd "C-c D") #'dictionary)
|
||||||
(global-set-key (kbd "C-c l a") #'eglot-code-actions)
|
(global-set-key (kbd "C-c l a") #'eglot-code-actions)
|
||||||
|
(global-set-key (kbd "C-c l f") #'apheleia-format-buffer)
|
||||||
(global-set-key (kbd "C-c l n") #'eglot-rename)
|
(global-set-key (kbd "C-c l n") #'eglot-rename)
|
||||||
(global-set-key (kbd "C-c l s") #'consult-eglot-symbols)
|
(global-set-key (kbd "C-c l s") #'consult-eglot-symbols)
|
||||||
(global-set-key (kbd "C-c l r") #'xref-find-references)
|
(global-set-key (kbd "C-c l r") #'xref-find-references)
|
||||||
@@ -18,16 +22,18 @@
|
|||||||
(global-set-key (kbd "C-c l D") #'eglot-find-declaration)
|
(global-set-key (kbd "C-c l D") #'eglot-find-declaration)
|
||||||
(global-set-key (kbd "C-c l i") #'eglot-find-implementation)
|
(global-set-key (kbd "C-c l i") #'eglot-find-implementation)
|
||||||
(global-set-key (kbd "C-c l t") #'eglot-find-typeDefinition)
|
(global-set-key (kbd "C-c l t") #'eglot-find-typeDefinition)
|
||||||
(global-set-key (kbd "C-x C-;") (lambda () (interactive) (if (region-active-p) (comment-region) (comment-line))))
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-c b") #'ibuffer)
|
(global-set-key (kbd "C-c b") #'ibuffer)
|
||||||
(global-set-key (kbd "C-c x") #'kill-current-buffer)
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-c k") #'eldoc)
|
(global-set-key (kbd "C-c k") #'eldoc)
|
||||||
(global-set-key (kbd "C-c m") #'man)
|
(global-set-key (kbd "C-c m") #'man)
|
||||||
(global-set-key (kbd "C-c o c") (lambda () (interactive) (dired user-init-dir)))
|
(global-set-key (kbd "C-c o c") (lambda () (interactive) (dired user-init-dir)))
|
||||||
(global-set-key (kbd "C-c o t") #'eshell)
|
(global-set-key (kbd "C-c o t") (lambda () (interactive) (eshell 'N)))
|
||||||
(global-set-key (kbd "C-c o m") #'magit)
|
(global-set-key (kbd "C-c o g") #'magit)
|
||||||
|
(global-set-key (kbd "C-c o e") #'mu4e)
|
||||||
|
(global-set-key (kbd "C-c o r") #'elfeed-summary)
|
||||||
|
(global-set-key (kbd "C-c o m") #'mpdel-browser-open)
|
||||||
|
(global-set-key (kbd "C-c o p") #'mpdel-playlist-open)
|
||||||
|
|
||||||
;; multi-cursor
|
;; multi-cursor
|
||||||
(global-set-key (kbd "C-c c w") #'mc/mark-next-like-this-word)
|
(global-set-key (kbd "C-c c w") #'mc/mark-next-like-this-word)
|
||||||
|
|||||||
@@ -29,42 +29,7 @@
|
|||||||
(menu-bar-mode -1)
|
(menu-bar-mode -1)
|
||||||
(tool-bar-mode -1)
|
(tool-bar-mode -1)
|
||||||
(scroll-bar-mode -1)
|
(scroll-bar-mode -1)
|
||||||
;; (defconst fonts '("Iosevka Term SS12" "Cascadia Code" "CaskaydiaCove Nerd Font"))
|
|
||||||
;; (defconst default-font-size 16)
|
|
||||||
|
|
||||||
;; (defun font-size (font)
|
|
||||||
;; (let ((size (plist-get font :size)))
|
|
||||||
;; (if size size default-font-size)))
|
|
||||||
;; (defun font-name (font)
|
|
||||||
;; (let ((name (plist-get font :name)))
|
|
||||||
;; (if name name font)))
|
|
||||||
|
|
||||||
;; (defun font-string (font)
|
|
||||||
;; (let ((name (font-name font))
|
|
||||||
;; (size (font-size font)))
|
|
||||||
;; (concat name " " (number-to-string size))))
|
|
||||||
|
|
||||||
;; (defun set-fonts ()
|
|
||||||
;; (let ((default-font (car fonts))
|
|
||||||
;; (fallback-fonts (cdr fonts)))
|
|
||||||
;; ;; (when (window-system)
|
|
||||||
;; (progn
|
|
||||||
;; (set-face-attribute 'default nil :font (font-string default-font))
|
|
||||||
;; (mapc (lambda (font)
|
|
||||||
;; (let ((face (font-string font))
|
|
||||||
;; (script (plist-get font :script)))
|
|
||||||
;; (if script
|
|
||||||
;; (progn
|
|
||||||
;; (set-fontset-font t script face)
|
|
||||||
;; (set-fontset-font t script (font-spec :script script) nil 'prepend))
|
|
||||||
;; (set-fontset-font t nil face nil 'prepend)))) fallback-fonts))))
|
|
||||||
|
|
||||||
;; (set-fonts)
|
|
||||||
|
|
||||||
;; (set-face-attribute 'default nil :font "Iosevka Term
|
|
||||||
;;(set-frame-font "Iosevka Term SS12-16")
|
|
||||||
(add-to-list 'default-frame-alist
|
|
||||||
'(font . "Iosevka Term SS12-14"))
|
|
||||||
(defun efs/display-startup-time ()
|
(defun efs/display-startup-time ()
|
||||||
(message "Emacs loaded in %s with %d garbage collections."
|
(message "Emacs loaded in %s with %d garbage collections."
|
||||||
(format "%.2f seconds"
|
(format "%.2f seconds"
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
(mapc (lambda (file) (load-file file)) config-files))))
|
(mapc (lambda (file) (load-file file)) config-files))))
|
||||||
|
|
||||||
(load-user-config)
|
(load-user-config)
|
||||||
|
|
||||||
(setq gc-cons-threshold (* 2 1000 1000))
|
(setq gc-cons-threshold (* 2 1000 1000))
|
||||||
|
|
||||||
(provide 'init)
|
(provide 'init)
|
||||||
|
|||||||
@@ -36,9 +36,369 @@
|
|||||||
:ensure t
|
:ensure t
|
||||||
:defer t)
|
:defer t)
|
||||||
|
|
||||||
|
(use-package libmpdel
|
||||||
|
:ensure t
|
||||||
|
:demand t)
|
||||||
|
|
||||||
|
(use-package mpdel
|
||||||
|
:ensure t
|
||||||
|
:demand t
|
||||||
|
:after libmpdel
|
||||||
|
:bind (:map mpdel-playlist-mode-map
|
||||||
|
("h" . mpdel-song-normal-decrement)
|
||||||
|
("l" . mpdel-song-normal-increment)
|
||||||
|
("b" . libmpdel-playback-next)
|
||||||
|
("z" . libmpdel-playback-next)
|
||||||
|
("c" . libmpdel-playback-play-pause)
|
||||||
|
("C" . mpdel/connect-with-ip)
|
||||||
|
("v" . libmpdel-stop)
|
||||||
|
("x" . (lambda () (interactive) (libmpdel-playback-seek 0)))
|
||||||
|
("i" . mpdel-song-open)
|
||||||
|
("s" . (lambda () (interactive) (if (libmpdel-get-state 'random #'identity) (libmpdel-playback-unset-random) (libmpdel-playback-set-random))))
|
||||||
|
("r" . (lambda () (interactive) (if (libmpdel-get-state 'repeat #'identity) (libmpdel-playback-unset-repeat) (libmpdel-playback-set-repeat))))
|
||||||
|
("X" . (lambda () (interactive (libmpdel-send-command "clear"))))
|
||||||
|
("RET" . mpdel-playlist-play)
|
||||||
|
(";" . mpdel/switch-context-i))
|
||||||
|
|
||||||
|
:init
|
||||||
|
(setq mpdel-prefix-key (kbd "C-c z"))
|
||||||
|
:config
|
||||||
|
(add-to-list 'libmpdel-profiles '("Desktop" "127.0.0.1" 6600 ipv4))
|
||||||
|
(add-to-list 'libmpdel-profiles '("Laptop" "127.0.0.1" 6600 ipv4))
|
||||||
|
(keymap-set global-map "C-c z" mpdel-playlist-mode-map)
|
||||||
|
(defun mpdel/connect-with-ip ()
|
||||||
|
(interactive)
|
||||||
|
(let* ((profile (completing-read "Connect to: " (mapcar #'car libmpdel-profiles) nil t))
|
||||||
|
(ip (completing-read "IP: " nil)))
|
||||||
|
(setf (alist-get profile libmpdel-profiles nil nil #'equal) `(,ip ,6600 ipv4))
|
||||||
|
(libmpdel-connect-profile (assoc-string profile libmpdel-profiles))))
|
||||||
|
(defun mpdel/add-all-to-queue ()
|
||||||
|
(interactive)
|
||||||
|
(libmpdel-send-command "clear")
|
||||||
|
(libmpdel-send-command "add /"))
|
||||||
|
(defun mpdel/start-all-music ()
|
||||||
|
(interactive)
|
||||||
|
(mpdel/add-all-to-queue)
|
||||||
|
(mpdel-playlist-open)
|
||||||
|
(libmpdel-play))
|
||||||
|
(defun mpdel/music-status ()
|
||||||
|
(interactive)
|
||||||
|
(funcall mpdel/music-status))
|
||||||
|
(defvar mpdel/music-status nil)
|
||||||
|
(let ((status nil))
|
||||||
|
(setq mpdel/music-status
|
||||||
|
(lambda ()
|
||||||
|
(require 'libmpdel)
|
||||||
|
(if (libmpdel-connected-p)
|
||||||
|
(let* ((song (libmpdel-current-song))
|
||||||
|
(volume (libmpdel-get-state 'volume #'identity))
|
||||||
|
(song-name (if song (libmpdel-entity-name song) nil))
|
||||||
|
(shuffle (or (libmpdel-get-state 'random (lambda (state) (if state "S" ""))) ""))
|
||||||
|
(repeat (or (libmpdel-get-state 'repeat (lambda (state) (if state "R" ""))) ""))
|
||||||
|
(progress ""))
|
||||||
|
(libmpdel-send-command "status" (lambda (s)
|
||||||
|
(setq status (copy-alist s))))
|
||||||
|
(when status
|
||||||
|
(let ((elapsed (libmpdel-time-to-string (cdr (assoc 'elapsed status))))
|
||||||
|
(duration (libmpdel-time-to-string (cdr (assoc 'duration status)))))
|
||||||
|
(setq progress (format " - %s/%s" elapsed duration))))
|
||||||
|
|
||||||
|
|
||||||
|
(cond
|
||||||
|
((libmpdel-playing-p) (format "> %s%s %s%s %s%%%%" song-name progress repeat shuffle volume))
|
||||||
|
((libmpdel-paused-p) (format "| %s%s %s%s %s%%%%" song-name progress repeat shuffle volume))
|
||||||
|
((libmpdel-stopped-p) "")))))))
|
||||||
|
(setq-default mode-line-format (append default-mode-line-format '((:eval (mpdel/music-status)))))
|
||||||
|
(defconst mpdel/contexts
|
||||||
|
`((podcasts . ((enter-hooks . ,(lambda (context) (libmpdel-send-commands '("clear"
|
||||||
|
"load podcasts"
|
||||||
|
"random 0"
|
||||||
|
"repeat 0"
|
||||||
|
"consume 1"
|
||||||
|
"single 0"))))
|
||||||
|
(song-change . ,(lambda (context) (libmpdel-send-commands '("rm podcasts"
|
||||||
|
"save podcasts"))))
|
||||||
|
(exit-hooks . ,(lambda (context) (libmpdel-send-commands '("rm podcasts"
|
||||||
|
"save podcasts"
|
||||||
|
"consume 0"))))))
|
||||||
|
(allmusic . ((enter-hooks . ,(lambda (context)
|
||||||
|
(libmpdel-send-commands '("random 1"
|
||||||
|
"repeat 1"
|
||||||
|
"consume 0"
|
||||||
|
"single 0"))
|
||||||
|
(mpdel/add-all-to-queue)))))
|
||||||
|
(playlist . ())))
|
||||||
|
(defvar mpdel/current-context (assq 'allmusic mpdel/contexts))
|
||||||
|
(defun mpdel/run-context-hooks (hook-name context)
|
||||||
|
(let ((hook (cdr (assq hook-name (cdr context)))))
|
||||||
|
(when hook
|
||||||
|
(funcall hook context))))
|
||||||
|
(add-to-list 'savehist-additional-variables 'mpdel/current-context)
|
||||||
|
(add-hook 'libmpdel-current-song-changed-hook (lambda ()
|
||||||
|
(let ((context mpdel/current-context))
|
||||||
|
(mpdel/run-context-hooks 'song-change context))))
|
||||||
|
(defun mpdel/is-current-context (context)
|
||||||
|
(eq context (car mpdel/current-context)))
|
||||||
|
(defun mpdel/switch-context-i ()
|
||||||
|
(interactive)
|
||||||
|
(mpdel/switch-context (intern (completing-read "Context: " (mapcar #'car mpdel/contexts) nil t))))
|
||||||
|
(defun mpdel/switch-context (context)
|
||||||
|
(interactive)
|
||||||
|
(libmpdel-ensure-connection)
|
||||||
|
(unless (eq (car mpdel/current-context) context)
|
||||||
|
(libmpdel-send-command "stop")
|
||||||
|
(mpdel/run-context-hooks 'exit-hooks mpdel/current-context)
|
||||||
|
(setq mpdel/current-context (assq context mpdel/contexts))
|
||||||
|
(mpdel/run-context-hooks 'enter-hooks mpdel/current-context))))
|
||||||
|
|
||||||
(use-package org
|
(use-package org
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t)
|
:defer t)
|
||||||
|
|
||||||
|
(use-package org-msg
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:hook ((mu4e-main-mode . org-msg-mode)
|
||||||
|
(mu4e-compose-mode . org-msg-mode))
|
||||||
|
:config
|
||||||
|
(setq mail-user-agent 'mu4e-user-agent)
|
||||||
|
(setq org-msg-options "html-postamble:nil H:5 num:nil ^:{} toc:nil author:nil email:nil \\n:t"
|
||||||
|
org-msg-startup "hidestars indent inlineimages"
|
||||||
|
org-msg-default-alternatives '((new . (text html))
|
||||||
|
(reply-to-html . (text html))
|
||||||
|
(reply-to-text . (text)))
|
||||||
|
org-msg-convert-citation t))
|
||||||
|
|
||||||
|
|
||||||
|
(use-package mu4e
|
||||||
|
:ensure t
|
||||||
|
:commands (mu4e)
|
||||||
|
:config
|
||||||
|
(setq mu4e-mu-binary (executable-find "mu"))
|
||||||
|
|
||||||
|
(setq mu4e-read-option-use-builtin nil
|
||||||
|
mu4e-completing-read-function 'completing-read)
|
||||||
|
;; this is the directory we created before:
|
||||||
|
(setq mu4e-maildir "~/.local/share/mail/")
|
||||||
|
|
||||||
|
;; this command is called to sync imap servers:
|
||||||
|
(setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a"))
|
||||||
|
;; how often to call it in seconds:
|
||||||
|
(setq mu4e-update-interval 300)
|
||||||
|
|
||||||
|
;; save attachment to desktop by default
|
||||||
|
;; or another choice of yours:
|
||||||
|
(setq mu4e-attachment-dir "~/Downloads")
|
||||||
|
|
||||||
|
;; rename files when moving - needed for mbsync:
|
||||||
|
(setq mu4e-change-filenames-when-moving t)
|
||||||
|
|
||||||
|
;; list of your email adresses:
|
||||||
|
(setq mu4e-user-mail-address-list '("mikecchalupiak@outlook.com"
|
||||||
|
"chalupmc@rose-hulman.edu"
|
||||||
|
"mikec@mchalupiak.com"
|
||||||
|
"spamreciver1@outlook.com"))
|
||||||
|
; the following is to show shortcuts in the main view.
|
||||||
|
(setq mu4e-bookmarks ())
|
||||||
|
(add-to-list 'mu4e-bookmarks
|
||||||
|
'(:name "spamreciver"
|
||||||
|
:query "maildir:/spamreciver1@outlook.com/INBOX"
|
||||||
|
:key ?s))
|
||||||
|
(add-to-list 'mu4e-bookmarks
|
||||||
|
'(:name "mchalupiak.com"
|
||||||
|
:query "maildir:/mikec@mchalupiak.com/INBOX"
|
||||||
|
:key ?h))
|
||||||
|
(add-to-list 'mu4e-bookmarks
|
||||||
|
'(:name "rose"
|
||||||
|
:query "maildir:/chalupmc@rose-hulman.edu/INBOX"
|
||||||
|
:key ?r))
|
||||||
|
(add-to-list 'mu4e-bookmarks
|
||||||
|
'(:name "outlook"
|
||||||
|
:query "maildir:/mikecchalupiak@outlook.com/INBOX"
|
||||||
|
:key ?o))
|
||||||
|
|
||||||
|
|
||||||
|
(setq mu4e-contexts
|
||||||
|
`(,(make-mu4e-context
|
||||||
|
:name "outlook"
|
||||||
|
:match-func
|
||||||
|
(lambda (msg)
|
||||||
|
(when msg
|
||||||
|
(mu4e-message-contact-field-matches msg
|
||||||
|
:to "mikecchalupiak@outlook.com")))
|
||||||
|
:vars '((user-mail-address . "mikecchalupiak@outlook.com")
|
||||||
|
(user-full-name . "Michael Chalupiak")
|
||||||
|
(mu4e-drafts-folder . "/mikecchalupiak@outlook.com/Drafts")
|
||||||
|
(mu4e-refile-folder . "/mikecchalupiak@outlook.com/Archive")
|
||||||
|
(mu4e-sent-folder . "/mikecchalupiak@outlook.com/Sent")
|
||||||
|
(mu4e-trash-folder . "/mikecchalupiak@outlook.com/Trash")))
|
||||||
|
|
||||||
|
,(make-mu4e-context
|
||||||
|
:name "rose"
|
||||||
|
:match-func
|
||||||
|
(lambda (msg)
|
||||||
|
(when msg
|
||||||
|
(mu4e-message-contact-field-matches msg
|
||||||
|
:to "chalupmc@rose-hulman.edu")))
|
||||||
|
:vars '((user-mail-address . "chalupmc@rose-hulman.edu")
|
||||||
|
(user-full-name . "Michael Chalupiak")
|
||||||
|
(mu4e-drafts-folder . "/chalupmc@rose-hulman.edu/Drafts")
|
||||||
|
(mu4e-refile-folder . "/chalupmc@rose-hulman.edu/Archive")
|
||||||
|
(mu4e-sent-folder . "/chalupmc@rose-hulman.edu/Sent")
|
||||||
|
(mu4e-trash-folder . "/chalupmc@rose-hulman.edu/Trash")))
|
||||||
|
|
||||||
|
,(make-mu4e-context
|
||||||
|
:name "hosted"
|
||||||
|
:match-func
|
||||||
|
(lambda (msg)
|
||||||
|
(when msg
|
||||||
|
(mu4e-message-contact-field-matches msg
|
||||||
|
:to "mikec@mchalupiak.com")))
|
||||||
|
:vars '((user-mail-address . "mikec@mchalupiak.com")
|
||||||
|
(user-full-name . "Michael Chalupiak")
|
||||||
|
;; check your ~/.maildir to see how the subdirectories are called
|
||||||
|
;; e.g `ls ~/.maildir/example'
|
||||||
|
(mu4e-drafts-folder . "/mikec@mchalupiak.com/Drafts")
|
||||||
|
(mu4e-refile-folder . "/mikec@mchalupiak.com/Archive")
|
||||||
|
(mu4e-sent-folder . "/mikec@mchalupiak.com/Sent")
|
||||||
|
(mu4e-trash-folder . "/mikec@mchalupiak.com/Trash")))
|
||||||
|
,(make-mu4e-context
|
||||||
|
:name "spam"
|
||||||
|
:match-func
|
||||||
|
(lambda (msg)
|
||||||
|
(when msg
|
||||||
|
(mu4e-message-contact-field-matches msg
|
||||||
|
:to "spamreciver1@outlook.com")))
|
||||||
|
:vars '((user-mail-address . "spamreciver1@outlook.com")
|
||||||
|
(user-full-name . "spamreciver")
|
||||||
|
;; check your ~/.maildir to see how the subdirectories are called
|
||||||
|
;; e.g `ls ~/.maildir/example'
|
||||||
|
(mu4e-drafts-folder . "/spamreciver1@outlook.com/Drafts")
|
||||||
|
(mu4e-refile-folder . "/spamreciver1@outlook.com/Archive")
|
||||||
|
(mu4e-sent-folder . "/spamreciver1@outlook.com/Sent")
|
||||||
|
(mu4e-trash-folder . "/spamreciver1@outlook.com/Trash")))))
|
||||||
|
|
||||||
|
(setq mu4e-context-policy 'pick-first) ;; start with the first (default) context;
|
||||||
|
(setq mu4e-compose-context-policy 'ask)
|
||||||
|
; gpg encryptiom & decryption:
|
||||||
|
;; this can be left alone
|
||||||
|
(require 'epa-file)
|
||||||
|
(epa-file-enable)
|
||||||
|
(setq epa-pinentry-mode 'loopback)
|
||||||
|
(auth-source-forget-all-cached)
|
||||||
|
|
||||||
|
;; don't keep message compose buffers around after sending:
|
||||||
|
(setq message-kill-buffer-on-exit t)
|
||||||
|
|
||||||
|
;; send function:
|
||||||
|
(setq send-mail-function 'message-send-mail-with-sendmail
|
||||||
|
message-send-mail-function 'message-send-mail-with-sendmail)
|
||||||
|
|
||||||
|
;; send program:
|
||||||
|
;; this is exeranal. remember we installed it before.
|
||||||
|
(setq sendmail-program (executable-find "msmtp"))
|
||||||
|
|
||||||
|
;; select the right sender email from the context.
|
||||||
|
(setq message-sendmail-envelope-from 'header)
|
||||||
|
|
||||||
|
;; chose from account before sending
|
||||||
|
;; this is a custom function that works for me.
|
||||||
|
;; well I stole it somewhere long ago.
|
||||||
|
;; I suggest using it to make matters easy
|
||||||
|
;; of course adjust the email adresses and account descriptions
|
||||||
|
(defun timu/set-msmtp-account ()
|
||||||
|
(if (message-mail-p)
|
||||||
|
(save-excursion
|
||||||
|
(let*
|
||||||
|
((from (save-restriction
|
||||||
|
(message-narrow-to-headers)
|
||||||
|
(message-fetch-field "from")))
|
||||||
|
(account
|
||||||
|
(cond
|
||||||
|
((string-match "mikecchalupiak@outlook.com" from) "outlook")
|
||||||
|
((string-match "chalupmc@rose-hulman.edu" from) "rose")
|
||||||
|
((string-match "mikec@mchalupiak.com" from) "hosted")
|
||||||
|
((string-match "spamreciver1@outlook.com" from) "spam"))))
|
||||||
|
(setq message-sendmail-extra-arguments (list '"-a" account)))))
|
||||||
|
|
||||||
|
(add-hook 'message-send-mail-hook 'timu/set-msmtp-account)
|
||||||
|
|
||||||
|
;; mu4e cc & bcc
|
||||||
|
;; this is custom as well
|
||||||
|
(add-hook 'mu4e-compose-mode-hook
|
||||||
|
(defun timu/add-cc-and-bcc ()
|
||||||
|
"My Function to automatically add Cc & Bcc: headers.
|
||||||
|
This is in the mu4e compose mode."
|
||||||
|
(save-excursion (message-add-header "Cc:\n"))
|
||||||
|
(save-excursion (message-add-header "Bcc:\n"))))))
|
||||||
|
;; ask for context if no context matches;)))
|
||||||
|
|
||||||
|
(use-package elfeed
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:commands (elfeed)
|
||||||
|
:bind (:map elfeed-show-mode-map
|
||||||
|
("a" . elfeed/add-to-playlist)
|
||||||
|
("A" . (lambda () (interactive)
|
||||||
|
(elfeed/add-to-playlist)
|
||||||
|
(mpdel/switch-context 'podcasts)
|
||||||
|
(libmpdel-play)))
|
||||||
|
("P" . (lambda () (interactive)
|
||||||
|
(mpdel/switch-context 'podcasts)
|
||||||
|
(libmpdel-play))))
|
||||||
|
:bind (:map elfeed-search-mode-map
|
||||||
|
("a" . elfeed/add-to-playlist)
|
||||||
|
("A" . (lambda () (interactive)
|
||||||
|
(elfeed/add-to-playlist)
|
||||||
|
(mpdel/switch-context 'podcasts)
|
||||||
|
(libmpdel-play)))
|
||||||
|
("P" . (lambda () (interactive)
|
||||||
|
(mpdel/switch-context 'podcasts)
|
||||||
|
(libmpdel-play))))
|
||||||
|
:config
|
||||||
|
(setq-default elfeed-search-filter " ")
|
||||||
|
(setq elfeed-feeds
|
||||||
|
'( ("https://phaazon.net/blog/feed")
|
||||||
|
("https://irreal.org/blog/?feed=rss2")
|
||||||
|
("https://port19.xyz/rss.xml")
|
||||||
|
("https://lukesmith.xyz/index.xml")
|
||||||
|
("https://notrelated.xyz/rss")
|
||||||
|
("https://karl-voit.at/feeds/lazyblorg-all.atom_1.0.links-and-content.xml")
|
||||||
|
;("https://sizeof.cat/index.xml")
|
||||||
|
("https://www.youtube.com/feeds/videos.xml?channel_id=UCkKmeTinUEU27syZPKrzWQQ")
|
||||||
|
("https://www.youtube.com/feeds/videos.xml?playlist_id=PLq1vmb-z7PpQt2PDNUr7XOzBjWAOWf0Rt")
|
||||||
|
("https://danielde.dev/rss.xml")
|
||||||
|
("https://pkolaczk.github.io/feed.xml")
|
||||||
|
("https://joeyh.name/blog/index.rss")
|
||||||
|
("https://kagifeedback.org/atom/t/release-notes")
|
||||||
|
("https://api.substack.com/feed/podcast/462466.rss")
|
||||||
|
("https://www.dailywire.com/feeds/rss.xml")
|
||||||
|
("https://feeds.simplecast.com/6c2VScgo")
|
||||||
|
("https://feeds.simplecast.com/pp_b9xO6")))
|
||||||
|
(defun elfeed/add-to-playlist ()
|
||||||
|
(interactive
|
||||||
|
(let* ((entry (if (eq major-mode 'elfeed-show-mode)
|
||||||
|
elfeed-show-entry
|
||||||
|
(elfeed-search-selected :ignore-region)))
|
||||||
|
(link (elfeed-entry-link entry))
|
||||||
|
(enclosure (elt (car (elfeed-entry-enclosures entry)) 0)) ; fragile?)))
|
||||||
|
(command (if (mpdel/is-current-context 'podcasts) (format "add \"%s\"" enclosure)
|
||||||
|
(format "playlistadd podcasts \"%s\"" enclosure))))
|
||||||
|
(when enclosure
|
||||||
|
(libmpdel-ensure-connection)
|
||||||
|
(libmpdel-send-command command (lambda (s) (pp s))))))))
|
||||||
|
(use-package elfeed-summary
|
||||||
|
:straight t
|
||||||
|
:defer t
|
||||||
|
:commands (elfeed-summary)
|
||||||
|
:bind (:map elfeed-summary-mode-map
|
||||||
|
("p" . magit-section-backward))
|
||||||
|
:config
|
||||||
|
(setq-default elfeed-summary-default-filter " ")
|
||||||
|
(setq-default elfeed-summary-look-back most-positive-fixnum)
|
||||||
|
(setq elfeed-summary--search-show-read t)
|
||||||
|
(setq elfeed-summary-settings
|
||||||
|
'((query . :all))))
|
||||||
|
|
||||||
(provide 'apps)
|
(provide 'apps)
|
||||||
;;; apps.el ends here
|
;;; apps.el ends here
|
||||||
|
|||||||
@@ -45,11 +45,31 @@
|
|||||||
:defer t
|
:defer t
|
||||||
:straight '(:type git :host codeberg :repo "meow_king/zig-ts-mode"))
|
:straight '(:type git :host codeberg :repo "meow_king/zig-ts-mode"))
|
||||||
|
|
||||||
|
(use-package haskell-ts-mode
|
||||||
|
:ensure t
|
||||||
|
:custom
|
||||||
|
(haskell-ts-font-lock-level 4)
|
||||||
|
(haskell-ts-use-indent t)
|
||||||
|
(haskell-ts-ghci "ghci")
|
||||||
|
(haskell-ts-use-indent t)
|
||||||
|
:config
|
||||||
|
(add-to-list 'treesit-language-source-alist
|
||||||
|
'(haskell . ("https://github.com/tree-sitter/tree-sitter-haskell" "v0.23.1"))))
|
||||||
|
;; (unless (treesit-grammar-location 'haskell)
|
||||||
|
;; (treesit-install-language-grammar 'haskell)))
|
||||||
|
|
||||||
(use-package eglot-x
|
(use-package eglot-x
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t
|
:defer t
|
||||||
:straight '(:type git :host github :repo "nemethf/eglot-x"))
|
:straight '(:type git :host github :repo "nemethf/eglot-x"))
|
||||||
|
|
||||||
|
(use-package sly
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:hook common-lisp-mode
|
||||||
|
:config
|
||||||
|
(setq inferior-lisp-program "sbcl"))
|
||||||
|
|
||||||
(dolist (mode '(c-ts-mode-hook
|
(dolist (mode '(c-ts-mode-hook
|
||||||
rust-ts-mode-hook
|
rust-ts-mode-hook
|
||||||
odin-ts-mode-hook
|
odin-ts-mode-hook
|
||||||
@@ -62,7 +82,9 @@
|
|||||||
|
|
||||||
(with-eval-after-load 'eglot
|
(with-eval-after-load 'eglot
|
||||||
(add-to-list 'eglot-server-programs
|
(add-to-list 'eglot-server-programs
|
||||||
'(zig-ts-mode . ("zls"))))
|
'(zig-ts-mode . ("zls")))
|
||||||
|
(add-to-list 'eglot-server-programs
|
||||||
|
'(haskell-ts-mode . ("haskell-language-server-wrapper" "--lsp"))))
|
||||||
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.odin\\'" . odin-ts-mode))
|
(add-to-list 'auto-mode-alist '("\\.odin\\'" . odin-ts-mode))
|
||||||
(add-to-list 'auto-mode-alist '("\\.zig\\(?:\\.zon\\)?\\'" . zig-ts-mode))
|
(add-to-list 'auto-mode-alist '("\\.zig\\(?:\\.zon\\)?\\'" . zig-ts-mode))
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
:defer t
|
:defer t
|
||||||
:init
|
:init
|
||||||
;; Configure themes
|
;; Configure themes
|
||||||
(setq auto-dark-themes '((doom-gruvbox) (doom-gruvbox-light)))
|
(setq auto-dark-themes '((kaolin-dark) (kaolin-light)))
|
||||||
;; Disable doom's theme loading mechanism (just to make sure)
|
;; Disable doom's theme loading mechanism (just to make sure)
|
||||||
;; (setq! doom-theme nil)
|
;; (setq! doom-theme nil)
|
||||||
;; Declare that all themes are safe to load.
|
;; Declare that all themes are safe to load.
|
||||||
|
|||||||
@@ -94,11 +94,48 @@
|
|||||||
;; (vertico-count 20) ;; Show more candidates
|
;; (vertico-count 20) ;; Show more candidates
|
||||||
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
|
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
|
||||||
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
|
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
|
||||||
(vertico-multiform-mode)
|
|
||||||
:init
|
:init
|
||||||
|
(vertico-multiform-mode)
|
||||||
(vertico-mode)
|
(vertico-mode)
|
||||||
(define-key vertico-map (kbd "DEL") #'vertico-directory-delete-char))
|
(define-key vertico-map (kbd "DEL") #'vertico-directory-delete-char))
|
||||||
|
|
||||||
|
(defvar +vertico-transform-functions nil)
|
||||||
|
|
||||||
|
(cl-defmethod vertico--format-candidate :around
|
||||||
|
(cand prefix suffix index start &context ((not +vertico-transform-functions) null))
|
||||||
|
(dolist (fun (ensure-list +vertico-transform-functions))
|
||||||
|
(setq cand (funcall fun cand)))
|
||||||
|
(cl-call-next-method cand prefix suffix index start))
|
||||||
|
|
||||||
|
(defun +vertico-highlight-directory (file)
|
||||||
|
"If FILE ends with a slash, highlight it as a directory."
|
||||||
|
(if (string-suffix-p "/" file)
|
||||||
|
(propertize file 'face 'marginalia-file-priv-dir) ; or face 'dired-directory
|
||||||
|
file))
|
||||||
|
|
||||||
|
;; function to highlight enabled modes similar to counsel-M-x
|
||||||
|
(defun +vertico-highlight-enabled-mode (cmd)
|
||||||
|
"If MODE is enabled, highlight it as font-lock-constant-face."
|
||||||
|
(let ((sym (intern cmd)))
|
||||||
|
(if (or (eq sym major-mode)
|
||||||
|
(and
|
||||||
|
(memq sym minor-mode-list)
|
||||||
|
(boundp sym)))
|
||||||
|
(propertize cmd 'face 'font-lock-constant-face)
|
||||||
|
cmd)))
|
||||||
|
|
||||||
|
;; add-to-list works if 'file isn't already in the alist
|
||||||
|
;; setq can be used but will overwrite all existing values
|
||||||
|
(add-to-list 'vertico-multiform-categories
|
||||||
|
'(file
|
||||||
|
;; this is also defined in the wiki, uncomment if used
|
||||||
|
;; (vertico-sort-function . vertico-sort-directories-first)
|
||||||
|
(+vertico-transform-functions . +vertico-highlight-directory)))
|
||||||
|
(add-to-list 'vertico-multiform-commands
|
||||||
|
'(execute-extended-command
|
||||||
|
(+vertico-transform-functions . +vertico-highlight-enabled-mode)))
|
||||||
|
|
||||||
|
|
||||||
;; Enable rich annotations using the Marginalia package
|
;; Enable rich annotations using the Marginalia package
|
||||||
(use-package marginalia
|
(use-package marginalia
|
||||||
;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding
|
;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
(use-package parinfer-rust-mode
|
(use-package parinfer-rust-mode
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t
|
:defer t
|
||||||
:hook emacs-lisp-mode
|
:hook ((emacs-lisp-mode common-lisp-mode lisp-mode scheme-mode) . parinfer-rust-mode)
|
||||||
:config
|
:config
|
||||||
(electric-pair-mode -1))
|
(electric-pair-mode -1))
|
||||||
|
|
||||||
@@ -99,5 +99,11 @@
|
|||||||
:ensure t
|
:ensure t
|
||||||
:defer t)
|
:defer t)
|
||||||
|
|
||||||
|
;; (use-package zoxide
|
||||||
|
;; :ensure t
|
||||||
|
;; :defer t
|
||||||
|
;; :hook eshell-mode
|
||||||
|
;; :straight '(:type git host: sourcehut :repo "vonfry/zoxide.el"))
|
||||||
|
|
||||||
(provide 'utils)
|
(provide 'utils)
|
||||||
;;; utils.el ends here
|
;;; utils.el ends here
|
||||||
|
|||||||
@@ -1,5 +1 @@
|
|||||||
# This file is written by nwg-look. Do not edit.
|
|
||||||
[Icon Theme]
|
|
||||||
Name=Default
|
|
||||||
Comment=Default Cursor Theme
|
|
||||||
Inherits=BreezeX-RosePineDawn-Linux
|
|
||||||
|
|||||||
Reference in New Issue
Block a user