mirror of
https://github.com/willemml/dotfiles.nix.git
synced 2025-04-13 03:37:18 +00:00
Moves Org and LaTeX config to its own module
This commit is contained in:
parent
6d25682e9f
commit
5689e42246
5 changed files with 304 additions and 262 deletions
287
home-manager/modules/tex.nix
Normal file
287
home-manager/modules/tex.nix
Normal file
|
@ -0,0 +1,287 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
enabled = config.custom.enableOrgTex;
|
||||||
|
in {
|
||||||
|
options.custom.enableOrgTex = lib.mkEnableOption "Enable Emacs Org and LaTeX configuration";
|
||||||
|
config = lib.mkIf enabled (let
|
||||||
|
aspellPackage = pkgs.aspellWithDicts (d: [d.en d.en-science d.en-computers d.fr]);
|
||||||
|
texliveset = pkgs.texlive.combine {
|
||||||
|
inherit
|
||||||
|
(pkgs.texlive)
|
||||||
|
scheme-basic
|
||||||
|
babel
|
||||||
|
amscls
|
||||||
|
amsmath
|
||||||
|
biber
|
||||||
|
biblatex
|
||||||
|
biblatex-mla
|
||||||
|
block
|
||||||
|
cancel
|
||||||
|
caption
|
||||||
|
capt-of
|
||||||
|
csquotes
|
||||||
|
enotez
|
||||||
|
enumitem
|
||||||
|
etex
|
||||||
|
etoolbox
|
||||||
|
fancyhdr
|
||||||
|
float
|
||||||
|
fontaxes
|
||||||
|
graphics
|
||||||
|
hanging
|
||||||
|
hyperref
|
||||||
|
latex
|
||||||
|
latexindent
|
||||||
|
latexmk
|
||||||
|
logreq
|
||||||
|
metafont
|
||||||
|
mlacls
|
||||||
|
newtx
|
||||||
|
pdflscape
|
||||||
|
pdfpages
|
||||||
|
preprint
|
||||||
|
psnfss
|
||||||
|
ragged2e
|
||||||
|
titlesec
|
||||||
|
tools
|
||||||
|
translations
|
||||||
|
ulem
|
||||||
|
url
|
||||||
|
wrapfig
|
||||||
|
xstring
|
||||||
|
xkeyval
|
||||||
|
;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
texliveset
|
||||||
|
aspellPackage
|
||||||
|
gnuplot
|
||||||
|
plantuml
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.emacs.extraPackages = let
|
||||||
|
org-auctex = pkgs.emacsPackages.trivialBuild rec {
|
||||||
|
pname = "org-auctex";
|
||||||
|
version = "e1271557b9f36ca94cabcbac816748e7d0dc989c";
|
||||||
|
|
||||||
|
buildInputs = [pkgs.emacsPackages.auctex];
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "karthink";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-cMAhwybnq5HA1wOaUqDPML3nnh5m1iwEETTPWqPbAvw=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in (with pkgs.emacsPackages; [
|
||||||
|
org-auctex
|
||||||
|
auctex
|
||||||
|
cdlatex
|
||||||
|
citeproc
|
||||||
|
graphviz-dot-mode
|
||||||
|
ivy-bibtex
|
||||||
|
gnuplot
|
||||||
|
htmlize
|
||||||
|
org-auctex
|
||||||
|
org-contrib
|
||||||
|
org-download
|
||||||
|
pdf-tools
|
||||||
|
plantuml-mode
|
||||||
|
]);
|
||||||
|
|
||||||
|
home.file.".emacs.d/org-init.el".text =
|
||||||
|
/*
|
||||||
|
elisp
|
||||||
|
*/
|
||||||
|
''
|
||||||
|
(require 'cdlatex)
|
||||||
|
(require 'citeproc)
|
||||||
|
(require 'gnuplot)
|
||||||
|
(require 'gnuplot-context)
|
||||||
|
(require 'graphviz-dot-mode)
|
||||||
|
(require 'htmlize)
|
||||||
|
(require 'ivy-bibtex)
|
||||||
|
(require 'ob-dot)
|
||||||
|
(require 'ob-emacs-lisp)
|
||||||
|
(require 'ob-gnuplot)
|
||||||
|
(require 'ob-matlab)
|
||||||
|
(require 'ob-python)
|
||||||
|
(require 'ob-shell)
|
||||||
|
(require 'oc)
|
||||||
|
(require 'oc-basic)
|
||||||
|
(require 'oc-csl)
|
||||||
|
(require 'oc-natbib)
|
||||||
|
(require 'org-auctex)
|
||||||
|
(require 'org-contrib)
|
||||||
|
(require 'org-download)
|
||||||
|
(require 'ox-latex)
|
||||||
|
(require 'ox-publish)
|
||||||
|
(require 'pdf-tools)
|
||||||
|
(require 'plantuml-mode)
|
||||||
|
(require 'tex)
|
||||||
|
|
||||||
|
(autoload 'gnuplot-mode "gnuplot" "Gnuplot major mode" t)
|
||||||
|
(autoload 'gnuplot-make-buffer "gnuplot" "open a buffer in gnuplot-mode" t)
|
||||||
|
(setq auto-mode-alist (append '(("\\.gp$" . gnuplot-mode)) auto-mode-alist))
|
||||||
|
|
||||||
|
(define-key graphviz-dot-mode-map (kbd "C-c C-y") 'graphviz-dot-indent-graph)
|
||||||
|
|
||||||
|
(defvar zotero-bibliography (expand-file-name "zotero.bib" org-directory))
|
||||||
|
|
||||||
|
(defvar ivy-bibtex-bibliography (list zotero-bibliography))
|
||||||
|
(setq reftex-default-bibliography (list zotero-bibliography))
|
||||||
|
(setq bibtex-completion-pdf-field "file")
|
||||||
|
|
||||||
|
(add-hook 'LaTeX-mode-hook 'turn-on-cdlatex)
|
||||||
|
(add-hook 'LaTeX-mode (lambda ()
|
||||||
|
(turn-on-reftex)))
|
||||||
|
(setq TeX-PDF-mode t
|
||||||
|
TeX-auto-save t
|
||||||
|
TeX-parse-self t)
|
||||||
|
|
||||||
|
(setq org-babel-octave-shell-command "octave -q")
|
||||||
|
|
||||||
|
(setq org-babel-python-command "python3.10")
|
||||||
|
(setq-default python-indent-guess-indent-offset-verbose nil)
|
||||||
|
(defun my/org-babel-execute:python-session (body params)
|
||||||
|
"Initiate a python session before executing org babel blocks that use sessions.
|
||||||
|
BODY is the content of the org-babel block and PARAMS are any parameters specified."
|
||||||
|
(let ((session-name (cdr (assq :session params))))
|
||||||
|
(when (not (eq session-name "none"))
|
||||||
|
(org-babel-python-initiate-session session-name))))
|
||||||
|
(advice-add #'org-babel-execute:python :before #'my/org-babel-execute:python-session)
|
||||||
|
|
||||||
|
(defun my/indent-org-block-automatically ()
|
||||||
|
"Indent the current org code block."
|
||||||
|
(interactive)
|
||||||
|
(when (org-in-src-block-p)
|
||||||
|
(org-edit-special)
|
||||||
|
(indent-region (point-min) (point-max))
|
||||||
|
(org-edit-src-exit)))
|
||||||
|
(defun my/org-force-open-current-window ()
|
||||||
|
"Open a link using 'org-open-at-point' in current window."
|
||||||
|
(interactive)
|
||||||
|
(let ((org-link-frame-setup
|
||||||
|
(quote
|
||||||
|
((vm . vm-visit-folder)
|
||||||
|
(vm-imap . vm-visit-imap-folder)
|
||||||
|
(gnus . gnus)
|
||||||
|
(file . find-file)
|
||||||
|
(wl . wl)))
|
||||||
|
))
|
||||||
|
(org-open-at-point)))
|
||||||
|
(defun my/follow-org-link (arg)
|
||||||
|
"Follow a link in orgmode If ARG is given.
|
||||||
|
Opens in new window otherwise opens in current window."
|
||||||
|
(interactive "P")
|
||||||
|
(if arg
|
||||||
|
(org-open-at-point)
|
||||||
|
(my/org-force-open-current-window)))
|
||||||
|
(defun krofna-hack ()
|
||||||
|
"Toggle latex fragments after exiting closing them."
|
||||||
|
(when (looking-back (rx "$ "))
|
||||||
|
(save-excursion
|
||||||
|
(backward-char 1)
|
||||||
|
(org-latex-preview))))
|
||||||
|
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-c n a") 'org-agenda)
|
||||||
|
|
||||||
|
(setq org-agenda-start-on-weekday nil)
|
||||||
|
|
||||||
|
(define-key org-mode-map (kbd "C-c C-o") 'my/follow-org-link)
|
||||||
|
(define-key org-mode-map (kbd "C-c C-y") 'my/indent-org-block-automatically)
|
||||||
|
(define-key org-mode-map (kbd "C-c ]") 'org-cite-insert)
|
||||||
|
|
||||||
|
(add-hook 'org-babel-after-execute-hook 'org-redisplay-inline-images)
|
||||||
|
(add-hook 'org-mode-hook 'visual-line-mode)
|
||||||
|
(add-hook 'org-mode-hook 'org-cdlatex-mode)
|
||||||
|
(add-hook 'org-mode-hook
|
||||||
|
(lambda ()
|
||||||
|
(add-hook 'post-self-insert-hook #'krofna-hack 'append 'local)))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("mla"
|
||||||
|
"\\documentclass{mla}"
|
||||||
|
("\\section{%s}" . "\\section*{%s}")
|
||||||
|
("\\subsection{%s}" . "\\subsection*{%s}")
|
||||||
|
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
|
||||||
|
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
||||||
|
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("letter"
|
||||||
|
"\\documentclass{letter}"
|
||||||
|
("\\section{%s}" . "\\section*{%s}")
|
||||||
|
("\\subsection{%s}" . "\\subsection*{%s}")
|
||||||
|
("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
|
||||||
|
|
||||||
|
(plist-put org-format-latex-options :scale 3)
|
||||||
|
|
||||||
|
(setq org-agenda-files (list org-directory (expand-file-name "ubc" org-directory)))
|
||||||
|
(setq org-agenda-tags-column 0)
|
||||||
|
(setq org-auto-align-tags nil)
|
||||||
|
(setq org-fold-catch-invisible-edits 'show-and-error)
|
||||||
|
(setq org-cite-export-processors '((t basic)))
|
||||||
|
(setq org-cite-global-bibliography (list zotero-bibliography))
|
||||||
|
(setq org-confirm-babel-evaluate nil)
|
||||||
|
(setq org-ellipsis "…")
|
||||||
|
(setq org-export-with-tags nil)
|
||||||
|
(setq org-hide-emphasis-markers t)
|
||||||
|
(setq org-highlight-latex-and-related '(latex))
|
||||||
|
(setq org-html-head-include-default-style nil)
|
||||||
|
(setq org-html-head-include-scripts nil)
|
||||||
|
(setq org-html-validation-link nil)
|
||||||
|
(setq org-image-actual-width 300)
|
||||||
|
(setq org-insert-heading-respect-content t)
|
||||||
|
(setq org-latex-pdf-process '("latexmk -pdflatex='pdflatex -interaction nonstopmode' -pdf -bibtex -f %f"))
|
||||||
|
(setq org-pretty-entities t)
|
||||||
|
(setq org-preview-latex-default-process 'dvisvgm)
|
||||||
|
(setq org-special-ctrl-a/e t)
|
||||||
|
(setq org-src-fontify-natively t)
|
||||||
|
(setq org-src-preserve-indentation t)
|
||||||
|
(setq org-src-tab-acts-natively t)
|
||||||
|
(setq org-src-window-setup 'current-window)
|
||||||
|
(setq org-tags-column 0)
|
||||||
|
|
||||||
|
(setq org-agenda-time-grid
|
||||||
|
'((daily today require-timed)
|
||||||
|
(800 1000 1200 1400 1600 1800 2000)
|
||||||
|
" ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄"))
|
||||||
|
|
||||||
|
(setq org-exports-dir (expand-file-name "exports" org-directory))
|
||||||
|
|
||||||
|
(setq org-publish-project-alist
|
||||||
|
(list (cons "html"
|
||||||
|
(list :base-directory org-directory
|
||||||
|
:base-extension "org"
|
||||||
|
:htmlized-source t
|
||||||
|
:recursive t
|
||||||
|
:publishing-directory org-exports-dir
|
||||||
|
:publishing-function 'org-html-publish-to-html))
|
||||||
|
(cons "pdf"
|
||||||
|
(list :base-directory org-directory
|
||||||
|
:base-extension "org"
|
||||||
|
:recursive t
|
||||||
|
:publishing-directory org-exports-dir
|
||||||
|
:publishing-function 'org-latex-publish-to-pdf))
|
||||||
|
(cons "all" '(:components ("html" "pdf")))))
|
||||||
|
|
||||||
|
(add-hook 'org-mode-hook 'org-auctex-mode)
|
||||||
|
|
||||||
|
(add-hook 'dired-mode-hook 'org-download-enable)
|
||||||
|
(setq-default org-download-image-dir (expand-file-name "images" org-directory))
|
||||||
|
|
||||||
|
(add-hook 'org-mode-hook 'org-modern-mode)
|
||||||
|
|
||||||
|
(setq-default pdf-view-display-size 'fit-width)
|
||||||
|
(defvar pdf-annot-activate-created-annotations t)
|
||||||
|
|
||||||
|
(setq plantuml-default-exec-mode 'executable)
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
}
|
|
@ -23,4 +23,16 @@ in rec {
|
||||||
MAILDIR = "${config.home.homeDirectory}/Maildir";
|
MAILDIR = "${config.home.homeDirectory}/Maildir";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
custom.enableOrgTex = lib.mkDefault true;
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".config/nixpkgs/config.nix".text = ''
|
||||||
|
# -*-nix-*-
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfreePredicate = (_: true);
|
||||||
|
allowUnfree = true;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,53 +17,6 @@
|
||||||
yarn
|
yarn
|
||||||
];
|
];
|
||||||
octave-wp = pkgs.octave.withPackages (p: with p; [symbolic]);
|
octave-wp = pkgs.octave.withPackages (p: with p; [symbolic]);
|
||||||
texliveset = pkgs.texlive.combine {
|
|
||||||
inherit
|
|
||||||
(pkgs.texlive)
|
|
||||||
scheme-basic
|
|
||||||
babel
|
|
||||||
amscls
|
|
||||||
amsmath
|
|
||||||
biber
|
|
||||||
biblatex
|
|
||||||
biblatex-mla
|
|
||||||
block
|
|
||||||
cancel
|
|
||||||
caption
|
|
||||||
capt-of
|
|
||||||
csquotes
|
|
||||||
enotez
|
|
||||||
enumitem
|
|
||||||
etex
|
|
||||||
etoolbox
|
|
||||||
fancyhdr
|
|
||||||
float
|
|
||||||
fontaxes
|
|
||||||
graphics
|
|
||||||
hanging
|
|
||||||
hyperref
|
|
||||||
latex
|
|
||||||
latexindent
|
|
||||||
latexmk
|
|
||||||
logreq
|
|
||||||
metafont
|
|
||||||
mlacls
|
|
||||||
newtx
|
|
||||||
pdflscape
|
|
||||||
pdfpages
|
|
||||||
preprint
|
|
||||||
psnfss
|
|
||||||
ragged2e
|
|
||||||
titlesec
|
|
||||||
tools
|
|
||||||
translations
|
|
||||||
ulem
|
|
||||||
url
|
|
||||||
wrapfig
|
|
||||||
xstring
|
|
||||||
xkeyval
|
|
||||||
;
|
|
||||||
};
|
|
||||||
fenix-rust = pkgs.fenix.combine (with pkgs.fenix; [
|
fenix-rust = pkgs.fenix.combine (with pkgs.fenix; [
|
||||||
latest.toolchain
|
latest.toolchain
|
||||||
targets.thumbv7em-none-eabihf.latest.rust-std
|
targets.thumbv7em-none-eabihf.latest.rust-std
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
aspellPackage = pkgs.aspellWithDicts (d: [d.en d.en-science d.en-computers d.fr]);
|
|
||||||
emacsPackage =
|
emacsPackage =
|
||||||
(pkgs.emacsPackagesFor pkgs.emacs29).emacsWithPackages
|
(pkgs.emacsPackagesFor pkgs.emacs29).emacsWithPackages
|
||||||
(epkgs:
|
(epkgs:
|
||||||
|
@ -19,19 +18,6 @@
|
||||||
sha256 = "sha256-6aX2S4cUop1rdxweIF5f1qrgNmYd1mtWgT9T1Q1s2h8=";
|
sha256 = "sha256-6aX2S4cUop1rdxweIF5f1qrgNmYd1mtWgT9T1Q1s2h8=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
org-auctex = epkgs.trivialBuild rec {
|
|
||||||
pname = "org-auctex";
|
|
||||||
version = "e1271557b9f36ca94cabcbac816748e7d0dc989c";
|
|
||||||
|
|
||||||
buildInputs = [epkgs.auctex];
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "karthink";
|
|
||||||
repo = pname;
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-cMAhwybnq5HA1wOaUqDPML3nnh5m1iwEETTPWqPbAvw=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lean4-mode = epkgs.trivialBuild rec {
|
lean4-mode = epkgs.trivialBuild rec {
|
||||||
pname = "lean4-mode";
|
pname = "lean4-mode";
|
||||||
version = "d1c936409ade7d93e67107243cbc0aa55cda7fd5";
|
version = "d1c936409ade7d93e67107243cbc0aa55cda7fd5";
|
||||||
|
@ -52,9 +38,6 @@
|
||||||
in [
|
in [
|
||||||
all-the-icons
|
all-the-icons
|
||||||
all-the-icons-dired
|
all-the-icons-dired
|
||||||
auctex
|
|
||||||
cdlatex
|
|
||||||
citeproc
|
|
||||||
company-mode
|
company-mode
|
||||||
company-sourcekit
|
company-sourcekit
|
||||||
counsel
|
counsel
|
||||||
|
@ -64,11 +47,7 @@
|
||||||
f
|
f
|
||||||
flycheck
|
flycheck
|
||||||
format-all
|
format-all
|
||||||
gnuplot
|
|
||||||
graphviz-dot-mode
|
|
||||||
htmlize
|
|
||||||
ivy
|
ivy
|
||||||
ivy-bibtex
|
|
||||||
lean4-mode
|
lean4-mode
|
||||||
lsp-mode
|
lsp-mode
|
||||||
lua-mode
|
lua-mode
|
||||||
|
@ -78,12 +57,7 @@
|
||||||
nix-mode
|
nix-mode
|
||||||
nix-update
|
nix-update
|
||||||
org
|
org
|
||||||
org-auctex
|
|
||||||
org-contrib
|
|
||||||
org-download
|
|
||||||
org-modern
|
org-modern
|
||||||
pdf-tools
|
|
||||||
plantuml-mode
|
|
||||||
polymode
|
polymode
|
||||||
poly-org
|
poly-org
|
||||||
rustic
|
rustic
|
||||||
|
@ -95,9 +69,6 @@
|
||||||
yasnippet
|
yasnippet
|
||||||
])
|
])
|
||||||
++ (with pkgs; [
|
++ (with pkgs; [
|
||||||
aspellPackage
|
|
||||||
gnuplot
|
|
||||||
plantuml
|
|
||||||
sqlite
|
sqlite
|
||||||
]));
|
]));
|
||||||
in {
|
in {
|
||||||
|
|
|
@ -60,51 +60,31 @@
|
||||||
|
|
||||||
(require 'all-the-icons)
|
(require 'all-the-icons)
|
||||||
(require 'all-the-icons-dired)
|
(require 'all-the-icons-dired)
|
||||||
(require 'cdlatex)
|
|
||||||
(require 'citeproc)
|
|
||||||
(require 'company)
|
(require 'company)
|
||||||
(require 'counsel)
|
(require 'counsel)
|
||||||
(require 'edit-indirect)
|
(require 'edit-indirect)
|
||||||
(require 'editorconfig)
|
(require 'editorconfig)
|
||||||
(require 'eglot)
|
(require 'eglot)
|
||||||
(require 'format-all)
|
(require 'format-all)
|
||||||
(require 'gnuplot)
|
|
||||||
(require 'gnuplot-context)
|
|
||||||
(require 'graphviz-dot-mode)
|
|
||||||
(require 'htmlize)
|
|
||||||
(require 'ivy)
|
(require 'ivy)
|
||||||
(require 'ivy-bibtex)
|
|
||||||
(require 'lean4-mode)
|
(require 'lean4-mode)
|
||||||
(require 'magit)
|
(require 'magit)
|
||||||
(require 'meow)
|
(require 'meow)
|
||||||
(require 'nix-mode)
|
(require 'nix-mode)
|
||||||
(require 'nix-update)
|
(require 'nix-update)
|
||||||
(require 'ob-dot)
|
|
||||||
(require 'ob-emacs-lisp)
|
|
||||||
(require 'ob-gnuplot)
|
|
||||||
(require 'ob-matlab)
|
|
||||||
(require 'ob-python)
|
|
||||||
(require 'ob-shell)
|
|
||||||
(require 'oc)
|
|
||||||
(require 'oc-basic)
|
|
||||||
(require 'oc-csl)
|
|
||||||
(require 'oc-natbib)
|
|
||||||
(require 'org)
|
(require 'org)
|
||||||
(require 'org-auctex)
|
|
||||||
(require 'org-contrib)
|
|
||||||
(require 'org-download)
|
|
||||||
(require 'org-modern)
|
(require 'org-modern)
|
||||||
(require 'ox-latex)
|
|
||||||
(require 'ox-publish)
|
|
||||||
(require 'pdf-tools)
|
|
||||||
(require 'plantuml-mode)
|
|
||||||
(require 'polymode)
|
(require 'polymode)
|
||||||
(require 'rustic)
|
(require 'rustic)
|
||||||
(require 'rust-ts-mode)
|
(require 'rust-ts-mode)
|
||||||
(require 'swiper)
|
(require 'swiper)
|
||||||
(require 'tex)
|
|
||||||
(require 'yasnippet)
|
(require 'yasnippet)
|
||||||
|
|
||||||
|
(let ((org-config (expand-file-name "~/.emacs.d/org-init.el")))
|
||||||
|
(when (file-exists-p org-config)
|
||||||
|
(load-file org-config))
|
||||||
|
)
|
||||||
|
|
||||||
(setq org-directory (expand-file-name "~/Documents/org"))
|
(setq org-directory (expand-file-name "~/Documents/org"))
|
||||||
|
|
||||||
(add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
|
(add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
|
||||||
|
@ -140,12 +120,6 @@
|
||||||
(add-to-list 'format-all-default-formatters '("Nix" alejandra))
|
(add-to-list 'format-all-default-formatters '("Nix" alejandra))
|
||||||
(setq-default format-all-formatters format-all-default-formatters)
|
(setq-default format-all-formatters format-all-default-formatters)
|
||||||
|
|
||||||
(autoload 'gnuplot-mode "gnuplot" "Gnuplot major mode" t)
|
|
||||||
(autoload 'gnuplot-make-buffer "gnuplot" "open a buffer in gnuplot-mode" t)
|
|
||||||
(setq auto-mode-alist (append '(("\\.gp$" . gnuplot-mode)) auto-mode-alist))
|
|
||||||
|
|
||||||
(define-key graphviz-dot-mode-map (kbd "C-c C-y") 'graphviz-dot-indent-graph)
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-c C-r") 'ivy-resume)
|
(global-set-key (kbd "C-c C-r") 'ivy-resume)
|
||||||
(add-hook 'after-init-hook 'ivy-mode)
|
(add-hook 'after-init-hook 'ivy-mode)
|
||||||
|
|
||||||
|
@ -159,21 +133,6 @@
|
||||||
'((ivy-bibtex . ivy--regex-ignore-order)
|
'((ivy-bibtex . ivy--regex-ignore-order)
|
||||||
(t . ivy--regex-plus)))
|
(t . ivy--regex-plus)))
|
||||||
|
|
||||||
(defvar zotero-bibliography (expand-file-name "zotero.bib" org-directory))
|
|
||||||
|
|
||||||
(defvar ivy-bibtex-bibliography (list zotero-bibliography))
|
|
||||||
(setq reftex-default-bibliography (list zotero-bibliography))
|
|
||||||
(setq bibtex-completion-pdf-field "file")
|
|
||||||
|
|
||||||
(add-hook 'LaTeX-mode-hook 'turn-on-cdlatex)
|
|
||||||
(add-hook 'LaTeX-mode (lambda ()
|
|
||||||
(turn-on-reftex)))
|
|
||||||
(setq TeX-PDF-mode t
|
|
||||||
TeX-auto-save t
|
|
||||||
TeX-parse-self t)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defun meow-setup ()
|
(defun meow-setup ()
|
||||||
"Initialize meow-edit for colemak."
|
"Initialize meow-edit for colemak."
|
||||||
(setq meow-cheatsheet-layout meow-cheatsheet-layout-colemak)
|
(setq meow-cheatsheet-layout meow-cheatsheet-layout-colemak)
|
||||||
|
@ -279,149 +238,9 @@
|
||||||
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.nix$" . poly-nix-mode))
|
(add-to-list 'auto-mode-alist '("\\.nix$" . poly-nix-mode))
|
||||||
|
|
||||||
|
|
||||||
;; Automatically update hash for nix fetch functions
|
;; Automatically update hash for nix fetch functions
|
||||||
(define-key nix-mode-map (kbd "C-c C-u") 'nix-update-fetch)
|
(define-key nix-mode-map (kbd "C-c C-u") 'nix-update-fetch)
|
||||||
|
|
||||||
(setq org-babel-octave-shell-command "octave -q")
|
|
||||||
|
|
||||||
(setq org-babel-python-command "python3.10")
|
|
||||||
(setq-default python-indent-guess-indent-offset-verbose nil)
|
|
||||||
(defun my/org-babel-execute:python-session (body params)
|
|
||||||
"Initiate a python session before executing org babel blocks that use sessions.
|
|
||||||
BODY is the content of the org-babel block and PARAMS are any parameters specified."
|
|
||||||
(let ((session-name (cdr (assq :session params))))
|
|
||||||
(when (not (eq session-name "none"))
|
|
||||||
(org-babel-python-initiate-session session-name))))
|
|
||||||
(advice-add #'org-babel-execute:python :before #'my/org-babel-execute:python-session)
|
|
||||||
|
|
||||||
(defun my/indent-org-block-automatically ()
|
|
||||||
"Indent the current org code block."
|
|
||||||
(interactive)
|
|
||||||
(when (org-in-src-block-p)
|
|
||||||
(org-edit-special)
|
|
||||||
(indent-region (point-min) (point-max))
|
|
||||||
(org-edit-src-exit)))
|
|
||||||
(defun my/org-force-open-current-window ()
|
|
||||||
"Open a link using 'org-open-at-point' in current window."
|
|
||||||
(interactive)
|
|
||||||
(let ((org-link-frame-setup
|
|
||||||
(quote
|
|
||||||
((vm . vm-visit-folder)
|
|
||||||
(vm-imap . vm-visit-imap-folder)
|
|
||||||
(gnus . gnus)
|
|
||||||
(file . find-file)
|
|
||||||
(wl . wl)))
|
|
||||||
))
|
|
||||||
(org-open-at-point)))
|
|
||||||
(defun my/follow-org-link (arg)
|
|
||||||
"Follow a link in orgmode If ARG is given.
|
|
||||||
Opens in new window otherwise opens in current window."
|
|
||||||
(interactive "P")
|
|
||||||
(if arg
|
|
||||||
(org-open-at-point)
|
|
||||||
(my/org-force-open-current-window)))
|
|
||||||
(defun krofna-hack ()
|
|
||||||
"Toggle latex fragments after exiting closing them."
|
|
||||||
(when (looking-back (rx "$ "))
|
|
||||||
(save-excursion
|
|
||||||
(backward-char 1)
|
|
||||||
(org-latex-preview))))
|
|
||||||
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-c n a") 'org-agenda)
|
|
||||||
|
|
||||||
(setq org-agenda-start-on-weekday nil)
|
|
||||||
|
|
||||||
(define-key org-mode-map (kbd "C-c C-o") 'my/follow-org-link)
|
|
||||||
(define-key org-mode-map (kbd "C-c C-y") 'my/indent-org-block-automatically)
|
|
||||||
(define-key org-mode-map (kbd "C-c ]") 'org-cite-insert)
|
|
||||||
|
|
||||||
(add-hook 'org-babel-after-execute-hook 'org-redisplay-inline-images)
|
|
||||||
(add-hook 'org-mode-hook 'visual-line-mode)
|
|
||||||
(add-hook 'org-mode-hook 'org-cdlatex-mode)
|
|
||||||
(add-hook 'org-mode-hook
|
|
||||||
(lambda ()
|
|
||||||
(add-hook 'post-self-insert-hook #'krofna-hack 'append 'local)))
|
|
||||||
|
|
||||||
(add-to-list 'org-latex-classes
|
|
||||||
'("mla"
|
|
||||||
"\\documentclass{mla}"
|
|
||||||
("\\section{%s}" . "\\section*{%s}")
|
|
||||||
("\\subsection{%s}" . "\\subsection*{%s}")
|
|
||||||
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
|
|
||||||
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
|
||||||
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
|
|
||||||
(add-to-list 'org-latex-classes
|
|
||||||
'("letter"
|
|
||||||
"\\documentclass{letter}"
|
|
||||||
("\\section{%s}" . "\\section*{%s}")
|
|
||||||
("\\subsection{%s}" . "\\subsection*{%s}")
|
|
||||||
("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
|
|
||||||
|
|
||||||
(plist-put org-format-latex-options :scale 3)
|
|
||||||
|
|
||||||
(setq org-agenda-files (list org-directory (expand-file-name "ubc" org-directory)))
|
|
||||||
(setq org-agenda-tags-column 0)
|
|
||||||
(setq org-auto-align-tags nil)
|
|
||||||
(setq org-fold-catch-invisible-edits 'show-and-error)
|
|
||||||
(setq org-cite-export-processors '((t basic)))
|
|
||||||
(setq org-cite-global-bibliography (list zotero-bibliography))
|
|
||||||
(setq org-confirm-babel-evaluate nil)
|
|
||||||
(setq org-ellipsis "…")
|
|
||||||
(setq org-export-with-tags nil)
|
|
||||||
(setq org-hide-emphasis-markers t)
|
|
||||||
(setq org-highlight-latex-and-related '(latex))
|
|
||||||
(setq org-html-head-include-default-style nil)
|
|
||||||
(setq org-html-head-include-scripts nil)
|
|
||||||
(setq org-html-validation-link nil)
|
|
||||||
(setq org-image-actual-width 300)
|
|
||||||
(setq org-insert-heading-respect-content t)
|
|
||||||
(setq org-latex-pdf-process '("latexmk -pdflatex='pdflatex -interaction nonstopmode' -pdf -bibtex -f %f"))
|
|
||||||
(setq org-pretty-entities t)
|
|
||||||
(setq org-preview-latex-default-process 'dvisvgm)
|
|
||||||
(setq org-special-ctrl-a/e t)
|
|
||||||
(setq org-src-fontify-natively t)
|
|
||||||
(setq org-src-preserve-indentation t)
|
|
||||||
(setq org-src-tab-acts-natively t)
|
|
||||||
(setq org-src-window-setup 'current-window)
|
|
||||||
(setq org-tags-column 0)
|
|
||||||
|
|
||||||
(setq org-agenda-time-grid
|
|
||||||
'((daily today require-timed)
|
|
||||||
(800 1000 1200 1400 1600 1800 2000)
|
|
||||||
" ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄"))
|
|
||||||
|
|
||||||
(setq org-exports-dir (expand-file-name "exports" org-directory))
|
|
||||||
|
|
||||||
(setq org-publish-project-alist
|
|
||||||
(list (cons "html"
|
|
||||||
(list :base-directory org-directory
|
|
||||||
:base-extension "org"
|
|
||||||
:htmlized-source t
|
|
||||||
:recursive t
|
|
||||||
:publishing-directory org-exports-dir
|
|
||||||
:publishing-function 'org-html-publish-to-html))
|
|
||||||
(cons "pdf"
|
|
||||||
(list :base-directory org-directory
|
|
||||||
:base-extension "org"
|
|
||||||
:recursive t
|
|
||||||
:publishing-directory org-exports-dir
|
|
||||||
:publishing-function 'org-latex-publish-to-pdf))
|
|
||||||
(cons "all" '(:components ("html" "pdf")))))
|
|
||||||
|
|
||||||
(add-hook 'org-mode-hook 'org-auctex-mode)
|
|
||||||
|
|
||||||
(add-hook 'dired-mode-hook 'org-download-enable)
|
|
||||||
(setq-default org-download-image-dir (expand-file-name "images" org-directory))
|
|
||||||
|
|
||||||
(add-hook 'org-mode-hook 'org-modern-mode)
|
|
||||||
|
|
||||||
(setq-default pdf-view-display-size 'fit-width)
|
|
||||||
(defvar pdf-annot-activate-created-annotations t)
|
|
||||||
|
|
||||||
(setq plantuml-default-exec-mode 'executable)
|
|
||||||
|
|
||||||
(define-key eglot-mode-map (kbd "C-c C-y") 'eglot-format-buffer)
|
(define-key eglot-mode-map (kbd "C-c C-y") 'eglot-format-buffer)
|
||||||
(define-key eglot-mode-map (kbd "C-c C-a") 'eglot-code-actions)
|
(define-key eglot-mode-map (kbd "C-c C-a") 'eglot-code-actions)
|
||||||
(setq eglot-extend-to-xref t)
|
(setq eglot-extend-to-xref t)
|
||||||
|
|
Loading…
Add table
Reference in a new issue