Compare commits

..

27 Commits

Author SHA1 Message Date
71bb316433 Fix Cross References 2025-09-04 15:42:37 -04:00
72ec0bbcca Fix indents 2025-09-03 17:04:23 -04:00
51149a1c62 TODO: Fix overrides for local-repo/emacs (for nix derivation) 2025-09-03 17:00:24 -04:00
2adc03c10d Cleanup Straight/Org Literate Loading 2025-09-02 11:56:17 -04:00
abd4dbb085 Merge branch 'master' of https://git.syzygial.cc/Syzygial/EmacsConfig 2025-09-02 11:16:25 -04:00
David
2ba07d3ba9 Update packages 2025-08-28 11:16:27 -04:00
David
7601c515d7 Fix loads and defers 2025-08-28 11:16:18 -04:00
David
491d9e173b No-defer to load pure customizations 2025-08-27 17:06:31 -04:00
David
707ae8ed9e Add note and disable GCMH 2025-08-27 16:59:57 -04:00
David
8e573a4739 Fix: Load Leaf w/ Straight.el 2025-08-27 16:53:42 -04:00
5a840488b5 Todo.org -> todos.org 2025-03-24 10:29:56 -04:00
14454885f1 Org-ref pre-process hook & org babel for shell 2025-03-20 12:06:21 -04:00
db7573be44 straight/org fixup 2025-03-18 10:12:10 -04:00
3f9a4859a9 No longer need community overlay (for now) 2025-03-18 09:52:53 -04:00
2c35aebce7 Nix Package Overlay -> Straight 2025-03-18 09:48:28 -04:00
91e2a5430d macport not avail for emacs-30, use regular/native 2025-03-13 11:39:50 -04:00
80eb9e5e07 rainbowmode 2025-03-13 11:30:26 -04:00
c4135ecee1 default nixpkgs emacs not 29 2025-03-11 12:43:56 -04:00
f840fea7c3 Update option for wayland or not 2025-02-01 11:09:51 -05:00
87858e66b8 flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/7a4b5bbc06182e2f704630cd77a614ab0d9c2f2e?narHash=sha256-bvj/wfLLFTc8cWAwhN8tgShiy8ekPWt1%2BgWlEH7W4zY%3D' (2023-08-14)
  → 'github:nix-community/emacs-overlay/4ebe4c890e7c8662ae31192359a56b0505cf10ba?narHash=sha256-R1p2ZXOydII%2BMT/SpeOXBjo/dgfD/gIArge2YAgSw38%3D' (2025-01-25)
• Removed input 'emacs-overlay/flake-utils'
• Removed input 'emacs-overlay/flake-utils/systems'
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/720e61ed8de116eec48d6baea1d54469b536b985?narHash=sha256-iUNEeudc4dGjx%2BHsHccnGiuZUVE/nhjXuQ1DVCsHIUY%3D' (2023-08-13)
  → 'github:NixOS/nixpkgs/035f8c0853c2977b24ffc4d0a42c74f00b182cd8?narHash=sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I%3D' (2025-01-23)
• Updated input 'flake-utils':
    'github:numtide/flake-utils/919d646de7be200f3bf08cb76ae1f09402b6f9b4?narHash=sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0%3D' (2023-07-11)
  → 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6e287913f7b1ef537c97aa301b67c34ea46b640f?narHash=sha256-gMbKOiX1HwClRP9lADaaV/lnZr93NEaOFe4ApDx/zd8%3D' (2023-08-14)
  → 'github:NixOS/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)
2025-01-25 19:04:07 -05:00
031084e3c6 ;; -> ; 2024-07-14 14:19:06 -04:00
d3257d36e4 Override treeSitter passthrough 2024-07-14 14:18:24 -04:00
5433a14e49 LSP: Add tree-sitter to emacs package 2024-07-14 13:57:47 -04:00
d2df2d938d Org Roam (Separate Leaf) 2024-06-27 15:27:23 -04:00
e575c6c432 Org Roam UI 2024-06-27 15:20:24 -04:00
0326ba9bdd ORB BB 2024-06-27 13:54:50 -04:00
7abd4f5b71 Org-roam: transient keybinds 2024-06-27 11:23:53 -04:00
7 changed files with 323 additions and 194 deletions

3
.gitignore vendored
View File

@@ -1,7 +1,8 @@
/auto-save-list/
/backups/
/etc/
/straight/
/straight/*
!/straight/versions
/tutorial/
/var/
tramp

View File

@@ -4,7 +4,9 @@
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes
'("5f79df6b4c56021d173c178d90b5a600c678a192d78cc639553915985b67c4ea" "8cda1cfae8e393bfb23f1d448d4be10720835d086f7db080908a7c8d01566516" "a27f7b52fe66bacaec9059f8afd04d055a4ac3c2fba9eb9128c81e10152fc566" "1ba7196d8e7b883272ea8818a5163aec21b57023368febf55255816226f7b370" "8256e7e03444834d34915a226dc24933b0d680a0a1da568ec03f852be776f168" "4ac2f45e6b46e5bb50826d4250df71a57124169b82cc0ad75e436de6e70a9690" "29addd67feb95ca1179e60d476bb92c1f11835548e2efaec15c9ac6af2a8e6a8" "9b7a425c38c4894e161887c26381c2a6fc1de3c1407158507caaf469d76eb27b" "bce055e1681dd343659957710af77f7a6ad106677d42c61f86ebeedf637c4493" "f62c69472d3f506179d797131c014fe4095d9609dddf14542c50e0388f1e8d6d" "cf143bf23fa8160f87331893cdadc40b876556634621dfa373fcf93c4c97c444" "f459dfd377e9cb98d90e53383dcca7d73396cc0a22b31d39af24fb1cf3548fb5" "fcc14e1a22c99d77f7b1455b0c8a320f8afd0c1f4a9c5c50b45f676eb0c54ba2" "a6bae299481c3c0058e611d2c32ca169fa27203345a880806a5a8554cdd2e588" "feb9556e03558588e29e6659c8e01ea3d2a17a1e7a13e9bf9fc9e59cacba4b72" default)))
'("5f79df6b4c56021d173c178d90b5a600c678a192d78cc639553915985b67c4ea" "8cda1cfae8e393bfb23f1d448d4be10720835d086f7db080908a7c8d01566516" "a27f7b52fe66bacaec9059f8afd04d055a4ac3c2fba9eb9128c81e10152fc566" "1ba7196d8e7b883272ea8818a5163aec21b57023368febf55255816226f7b370" "8256e7e03444834d34915a226dc24933b0d680a0a1da568ec03f852be776f168" "4ac2f45e6b46e5bb50826d4250df71a57124169b82cc0ad75e436de6e70a9690" "29addd67feb95ca1179e60d476bb92c1f11835548e2efaec15c9ac6af2a8e6a8" "9b7a425c38c4894e161887c26381c2a6fc1de3c1407158507caaf469d76eb27b" "bce055e1681dd343659957710af77f7a6ad106677d42c61f86ebeedf637c4493" "f62c69472d3f506179d797131c014fe4095d9609dddf14542c50e0388f1e8d6d" "cf143bf23fa8160f87331893cdadc40b876556634621dfa373fcf93c4c97c444" "f459dfd377e9cb98d90e53383dcca7d73396cc0a22b31d39af24fb1cf3548fb5" "fcc14e1a22c99d77f7b1455b0c8a320f8afd0c1f4a9c5c50b45f676eb0c54ba2" "a6bae299481c3c0058e611d2c32ca169fa27203345a880806a5a8554cdd2e588" "feb9556e03558588e29e6659c8e01ea3d2a17a1e7a13e9bf9fc9e59cacba4b72" default))
'(package-selected-packages
'(sage-shell-mode ess lsp-dart dart-mode org-roam-bibtex org-roam-ui org-roam gnuplot auctex ox-reveal ox-pandoc pdf-tools helm-bibtex org-ref org geiser-racket rainbow-delimiters slint-mode rust-mode company-ghci lsp-haskell haskell-mode poetry python-mode yaml-mode d2-mode php-mode web-mode dap-mode flycheck lsp-ui lsp-mode company which-key nix-mode direnv magit exec-path-from-shell esup gcmh transient-dwim leaf-convert leaf-tree blackout hydra el-get leaf-keywords)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.

86
flake.lock generated
View File

@@ -1,55 +1,15 @@
{
"nodes": {
"emacs-overlay": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1692037570,
"narHash": "sha256-bvj/wfLLFTc8cWAwhN8tgShiy8ekPWt1+gWlEH7W4zY=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "7a4b5bbc06182e2f704630cd77a614ab0d9c2f2e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1689068808,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1689068808,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -60,11 +20,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1691990649,
"narHash": "sha256-gMbKOiX1HwClRP9lADaaV/lnZr93NEaOFe4ApDx/zd8=",
"lastModified": 1737746512,
"narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6e287913f7b1ef537c97aa301b67c34ea46b640f",
"rev": "825479c345a7f806485b7f00dbe3abb50641b083",
"type": "github"
},
"original": {
@@ -74,26 +34,9 @@
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1691950488,
"narHash": "sha256-iUNEeudc4dGjx+HsHccnGiuZUVE/nhjXuQ1DVCsHIUY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "720e61ed8de116eec48d6baea1d54469b536b985",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"emacs-overlay": "emacs-overlay",
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
@@ -111,21 +54,6 @@
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View File

@@ -1,28 +1,21 @@
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.emacs-overlay.url = "github:nix-community/emacs-overlay";
inputs.emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils, emacs-overlay }: let
mkEmacs = pkgs: v: pkgs.emacsWithPackagesFromUsePackage {
config = ./main.org;
package = pkgs."${v}${if pkgs.stdenv.isDarwin then "-macport" else "-pgtk"}";
};
outputs = { self, nixpkgs, flake-utils }: let
in (flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {
inherit system;
overlays = [
emacs-overlay.overlays.default
];
};
in {
packages = {
me-emacs = mkEmacs pkgs "emacs29";
me-emacs = pkgs.emacs;
me-emacs-wayland = pkgs.emacs-pgtk;
};
})) // {
overlays.default = final: prev: (emacs-overlay.overlays.default final prev) // {
me-emacs = mkEmacs final "emacs29";
};
overlays.default = final: prev: ({
me-emacs = final.emacs;
me-emacs-wayland = final.emacs-pgtk;
});
};
}

39
init.el
View File

@@ -3,22 +3,31 @@
;; This file loads Org and then loads the rest of our Emacs initialization from Emacs lisp
;; embedded in literate Org files.
;; Load up Org Mode and (now included) Org Babel for elisp embedded in Org Mode files
(setq dotfiles-dir (file-name-directory (or (buffer-file-name) load-file-name)))
(setq straight-check-for-modifications '(check-on-save find-when-checking))
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name
"straight/repos/straight.el/bootstrap.el"
(or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
(bootstrap-version 7))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(let* ((org-dir (expand-file-name
"lisp" (expand-file-name
"org" (expand-file-name
"src" dotfiles-dir))))
(org-contrib-dir (expand-file-name
"lisp" (expand-file-name
"contrib" (expand-file-name
".." org-dir))))
(load-path (append (list org-dir org-contrib-dir)
(or load-path nil))))
;; load up Org and Org-babel
(require 'org)
(require 'ob-tangle))
(setq straight-vc-git-default-clone-depth '(1 single-branch)) ;; instead of the default 'full
;; prebuild is broken in org-mode (TODO: FIX)
;; (straight-override-recipe '(org :local-repo "/Users/universelaptop/tmp/org"))
(straight-use-package 'org)
(setq dotfiles-dir (file-name-directory (or (buffer-file-name) load-file-name)))
;; load up all literate org-mode files in this directory
(mapc #'org-babel-load-file (directory-files dotfiles-dir t "\\.org$"))

260
main.org
View File

@@ -9,42 +9,58 @@
* Initialization
** Straight.el
Package management to be a little more fien/precise and work outside
of Nix (as much as it would be nice to work inside of Nix too). This
is actually contained within =init.el=
#+begin_src elisp :tangle no :exports code
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name
"straight/repos/straight.el/bootstrap.el"
(or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
(bootstrap-version 7))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
#+end_src
This code block actually resides in init.el (so that we can perform
some necessary pre-configuration)
** Leaf.el
We must initialize =leaf.el=, which we use as a use-package
replacement for defining configs and relations between packages etc.
#+begin_src elisp :tangle yes :exports code
(eval-and-compile
(customize-set-variable
'package-archives '(("org" . "https://orgmode.org/elpa/")
("melpa" . "https://melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/")))
(package-initialize)
(unless (package-installed-p 'leaf)
(package-refresh-contents)
(package-install 'leaf))
(eval-and-compile
(straight-use-package 'leaf)
(leaf leaf-keywords
:ensure t
:init
(leaf el-get :ensure t)
(leaf hydra :ensure t)
(leaf blackout :ensure t)
(leaf leaf-keywords
:init
(straight-use-package 'leaf-keywords)
:custom
(leaf-alias-keyword-alist .'((:ensure . :straight)))
:config
;; initialize leaf-keywords.el
(leaf-keywords-init)))
:config
;; initialize leaf-keywords.el
(leaf-keywords-init)))
(leaf leaf-tree :ensure t)
(leaf leaf-convert :ensure t)
(leaf transient-dwim :ensure t
:bind (("M-=" . transient-dwim-dispatch)))
(leaf leaf-tree :ensure t)
(leaf leaf-convert :ensure t)
(leaf transient-dwim :ensure t
:require t ;; Needed so that org-roam may unobstructively depend on this
:bind (("M-=" . transient-dwim-dispatch)))
#+end_src
#+RESULTS:
: transient-dwim
** MacOS Specific
#+begin_src elisp :tangle yes :exports code
@@ -59,9 +75,16 @@ replacement for defining configs and relations between packages etc.
*** Garbage Collection
This makes the garbage collection thresholds variable based on emacs
usage. I don't know how well this plays with LSPs or similarly RAM hungry
features. This was useful when I used a very restricted netbook w/ ~2GiB of
RAM.
Disabled for now. (May add flags to enable on specific systems)
#+begin_src elisp :tangle yes :exports code
(leaf gcmh :ensure t
:hook (after-init-hook))
; (leaf gcmh :ensure t
; :hook (after-init-hook))
#+end_src
*** Profiling
@@ -77,6 +100,7 @@ Ensure that the =custom.el= resides in the users' emacs directory.
#+begin_src elisp :tangle yes :exports code
(leaf custom-el
:leaf-defer nil
:config
;; Ensure custom writes to specific file
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
@@ -89,6 +113,7 @@ Set the backups directory to reside in the users' emacs directory.
#+begin_src elisp :tangle yes :exports code
(leaf backup
:leaf-defer nil
:config
;; Change the location of file backups/locks into the emacs.d/backups/
(setq backup-directory-alist
@@ -112,6 +137,7 @@ Visual Theme of Emacs config: defined in the =themes= directory.
#+begin_src elisp :tangle yes :exports code
(leaf visual
:leaf-defer nil
:doc "Visual Changes to Emacs"
:tag "builtin" "internal"
:custom ((menu-bar-mode . nil)
@@ -128,7 +154,9 @@ Visual Theme of Emacs config: defined in the =themes= directory.
* Version Control
#+begin_src elisp :tangle yes :exports code
(leaf magit :ensure t :require t)
(leaf magit
:leaf-defer nil
:ensure t :require t)
#+end_src
* Nix Related
@@ -139,15 +167,16 @@ In order to support direnv (loading =nix-shell= / =nix develop=)
#+begin_src elisp :tangle yes :exports code
(leaf direnv
:ensure t
:config
(direnv-mode))
:global-minor-mode direnv-mode)
#+end_src
** Nix-mode
=.nix= file mode
#+begin_src elisp :tangle yes :exports code
(leaf nix-mode :ensure t)
(leaf nix-mode
:ensure t
:mode "\\.nix\\'")
#+end_src
* IDE Like Things
@@ -155,8 +184,9 @@ In order to support direnv (loading =nix-shell= / =nix develop=)
** Which Key Again?
#+begin_src elisp :tangle yes :exports code
(leaf which-key :ensure t
:config (which-key-mode))
(leaf which-key
:ensure t
:global-minor-mode which-key-mode)
#+end_src
** Company Completion!
@@ -168,7 +198,7 @@ We like autocomplete, it... is nice, okay?
:bind
(("C-<tab>" . company-complete))
:hook after-init-hook
:config (global-company-mode))
:global-minor-mode global-company-mode)
#+end_src
** Language Server Protocol
@@ -181,9 +211,9 @@ We love language features that make languages nice
:init
(setq lsp-keymap-prefix "C-c l")
:commands lsp lsp-deferred
:hook
:hook (
;; which key support v v v
((lsp-mode-hook . lsp-enable-which-key-integration)
(lsp-mode-hook . lsp-enable-which-key-integration)
#+end_src
*** IDE Languages
@@ -222,7 +252,7 @@ We love language features that make languages nice
**** Rust
#+begin_src elisp :tangle yes :exports code
(rust-mode-hook . lsp-deferred))
(rust-mode-hook . lsp-deferred)
#+end_src
#+begin_src elisp :tangle yes :exports code
@@ -233,6 +263,10 @@ We love language features that make languages nice
We do want some nice to haves of course
#+begin_src elisp :tangle yes :exports code
:init
#+end_src
- A pretty UI:
#+begin_src elisp :tangle yes :exports code
(leaf lsp-ui :ensure t
@@ -256,6 +290,12 @@ We do want some nice to haves of course
(projectile-mode +1))
#+end_src
END LSP CONFIG
#+begin_src elisp :tangle yes :exports code
)
#+end_src
* WEB
We all know the web is the future, obviously, of course.
@@ -269,19 +309,29 @@ We all know the web is the future, obviously, of course.
"\\.jsx?\\'"
"\\.tsx?\\'")
(leaf php-mode
:mode "\\.php\\'"
:ensure t)
(leaf rainbow-mode
:leaf-defer nil
:ensure t)
#+end_src
* D2
#+begin_src elisp :tangle yes :exports code
(leaf d2-mode :ensure t)
(leaf d2-mode
:ensure t
:mode "\\.d2\\'"
)
#+end_src
* YAML
#+begin_src elisp :tangle yes :exports code
(leaf yaml-mode :ensure t)
(leaf yaml-mode
:ensure t
:mode "\\.yaml\\'"
)
#+end_src
* Python Things
@@ -292,7 +342,9 @@ Using python-mode is to have more up to date features (and
highlighting) compared to builtin python-mode.
#+begin_src elisp :tangle yes :exports code
(leaf python-mode :ensure t
(leaf python-mode
:ensure t
:mode "\\.py\\'"
:config
(setq python-shell-interpreter "ipython"
python-shell-interpreter-args "-i --simple-prompt --InteractiveShell.display_page=True"))
@@ -310,27 +362,34 @@ For when we aren't nix'ing things, and want some nice poetry.
Who even needs C++, not me, no way, no how.
#+begin_src elisp :tangle yes :exports code
#+begin_src elisp :tangle no :exports code
(leaf c-config
:hook c-mode-hook c++-mode-hook
:config
(leaf company-ctags :ensure t)
(leaf company-c-headers :ensure t)
(leaf meson-mode :ensure t))
; (leaf company-ctags :ensure t
; :hook c-mode-hook c++-mode-hook)
; (leaf company-c-headers :ensure t
; :hook c-mode-hook c++-mode-hook)
; (leaf meson-mode :ensure t
; :hook c-mode-hook c++-mode-hook)
)
#+end_src
* Haskell
#+begin_src elisp :tangle yes :exports code
(leaf haskell-mode :ensure t)
(leaf lsp-haskell :ensure t)
(leaf company-ghci :ensure t)
(leaf haskell-mode
:ensure t
:mode "\\.hs\\'"
:init
(leaf lsp-haskell :ensure t)
(leaf company-ghci :ensure t))
#+end_src
* Rust
#+begin_src elisp :tangle yes :exports code
(leaf rust-mode :ensure t
:mode "\\.rs\\'"
:init
(leaf slint-mode :ensure t))
#+end_src
@@ -341,7 +400,7 @@ Minecraft =mcfunction= support, because, it can be annoying to type
this stuff otherwise.
#+begin_src elisp :tangle yes :exports code
(leaf mcf-mode
:el-get rasensuihei/mcf)
:straight (mcf-mode :type git :host github :repo "rasensuihei/mcf"))
#+end_src
* Lisps
@@ -364,22 +423,34 @@ Makes using racket so much nicer
(leaf geiser-racket :ensure t)
#+end_src
** Clojure
For using clojure, we use both [[https://github.com/clojure-emacs/clojure-mode][clojure-mode]] and for REPL we use [[https://github.com/clojure-emacs/cider][CIDER]].
#+begin_src elisp :tangle yes :exports code
(leaf clojure-mode :ensure t cider)
#+end_src
* Org
We ensure that org is available (though it is builtin)
For Version compatibility we actually install org in init.el (to not
conflict with the builtin version of Org)
#+begin_src elisp :tangle yes :exports code
(leaf org :ensure t
(leaf org
:require t org-tempo
:hook
(org-mode-hook . auto-fill-mode)
:config
(setq document-dir (expand-file-name (if (eq system-type 'darwin) "~/Nextcloud" "~/Documents")))
(setq org-directory (concat document-dir "/org"))
(when (not (file-exists-p org-directory)) (mkdir org-directory))
(set-fill-column 100)
(setq org-src-fontify-natively t
org-confirm-babel-evaluate nil
org-src-preserve-indentation t))
org-confirm-babel-evaluate nil
org-src-preserve-indentation t))
;; (tempo-define-template "Fig. Caption"
;; '("" (P "Image: " image t)
;; (P "Caption: " caption t)
@@ -434,7 +505,9 @@ updating our bibliography.
bibtex-autokey-titlewords 2
bibtex-autokey-titlewords-stretch 1
bibtex-autokey-titleword-length 5)
:require org-ref org-ref-helm oc-bibtex oc-bibtex oc-csl oc-natbib)
(add-to-list 'org-export-before-parsing-functions 'org-ref-csl-preprocess-buffer)
(add-to-list 'org-export-before-parsing-functions 'org-ref-refproc)
:require org-ref org-ref-helm oc-bibtex oc-bibtex oc-csl oc-natbib org-ref-refproc)
#+end_src
** Extra Export Options
@@ -449,28 +522,21 @@ We really do require latex
:config
(add-to-list 'org-latex-packages-alist '("" "minted"))
(setq org-latex-listings 'minted)
(setq org-latex-prefer-user-labels t)
(add-to-list 'org-latex-classes
'("labtemplate" "\\documentclass{labtemplate}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
'("labtemplate" "\\documentclass{labtemplate}"
("\\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
'("thesis" "\\documentclass[11pt]{ut-thesis}"
("\\part{%s}" . "\\part*{%s}")
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
(setq org-latex-pdf-process
'("%latex -shell-escape -interaction nonstopmode -output-directory %o %f"
"%latex -shell-escape -interaction nonstopmode -output-directory %o %f"
"bibtex %b"
"%latex -shell-escape -interaction nonstopmode -output-directory %o %f"
"%latex -shell-escape -interaction nonstopmode -output-directory %o %f")))
'("thesis" "\\documentclass[11pt]{ut-thesis}"
("\\part{%s}" . "\\part*{%s}")
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))))
#+end_src
*** HTML Export
@@ -540,9 +606,9 @@ And in case we want to make some (GNU)?plots?
*** Agenda Location
# Make it so that all files in the " src_elisp{org-agenda-files} " variable (e.g. "=~/Documents=") will be
# included in the tablutation and collation of all the dates and todos
# etc.
Make it so that all files in the " src_elisp{org-agenda-files} " variable (e.g. "=~/Documents=") will be
included in the tablutation and collation of all the dates and todos
etc.
#+begin_src elisp :tangle yes :exports code
(leaf org-agenda
@@ -577,9 +643,9 @@ e.g. meetings, deadlines and whatever else:
:config
(add-hook 'org-capture-mode-hook #'org-id-get-create)
(setq org-capture-templates
'(("t" "Todo" entry (file+headline "todo.org" "Tasks")
'(("t" "Todo" entry (file+headline "todos.org" "Tasks")
"* TODO %^{Todo?} %^G\nSCHEDULED: %^t\n:PROPERTIES:\n:ADDED: %U\n:END:\n %i\n %a \n%?\n")
("h" "Habit" entry (file+headline "todo.org" "Habits")
("h" "Habit" entry (file+headline "todos.org" "Habits")
"* TODO %^{Habit} %^G\nSCHEDULED: %^T\n:PROPERTIES:\n:STYLE: habit\n:ADDED: %U\n:END:\n%?\n")
("j" "Journal" entry (file+datetree "journal.org")
"* %^{Journal Entry:} %^G\nEntered on %U\n %i\n:PROPERTIES:\n:ADDED: %U\n:END:\n %a\n%?\n")
@@ -613,14 +679,39 @@ taking package.
#+begin_src elisp :tangle yes :exports code
(leaf org-roam :ensure t
:after org
:after org transient-dwim
:require t
:config
(setq org-roam-directory (file-truename org-directory))
(org-roam-db-autosync-mode))
(org-roam-db-autosync-mode)
(transient-define-prefix transient--org-roam ()
["Org Roam"
("M-c" "Capture Note" org-roam-capture)
("M-i" "Insert Note" org-roam-node-insert)
("M-f" "Find Note" org-roam-node-find)])
(transient-append-suffix 'transient-dwim-org "M-o" '("M-n" "roam" transient--org-roam))
(setq org-roam-capture-templates
'(("d" "default" plain "%?"
:target (file+head "notes/%<%Y%m%d%H%M%S>-${slug}.org"
"#+title: ${title}\n")
:unnarrowed t))))
#+end_src
**** Org Roam Babel (ORB)
**** Org Roam UI
#+begin_src elisp :tangle yes :exports code
(leaf org-roam-ui :ensure t
:after org-roam)
#+end_src
**** Org Roam Bibtex (ORB)
#+begin_src elisp :tangle yes :exports code
(leaf org-roam-bibtex :ensure t
:after org-roam org-ref
:require t
:hook (after-init-hook . org-roam-bibtex-mode))
#+end_src
** Org Babel
@@ -631,7 +722,8 @@ taking package.
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(python . t))))
(python . t)
(shell . t))))
#+end_src
* Flutter
@@ -645,7 +737,7 @@ taking package.
#+begin_src elisp :tangle yes :exports code
(leaf bqn-mode
:el-get "museoa/bqn-mode"
:ensure (bqn-mode :type git :host github :repo "museoa/bqn-mode")
:defer-config
(set-face-attribute 'bqn-default nil :family 'unspecified))
#+end_src

View File

@@ -0,0 +1,104 @@
(("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196")
("auctex" . "a2809e4d7068aaa7fa9cbd51214606393d4ab9eb")
("avy" . "933d1f36cca0f71e4acb5fac707e9ae26c536264")
("biblio.el" . "bb9d6b4b962fb2a4e965d27888268b66d868766b")
("bqn-mode" . "a253194d880e762a2886feac4745ae9cf967567b")
("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470")
("cfrs" . "981bddb3fb9fd9c58aed182e352975bd10ad74c8")
("cider" . "8a4405ca0d8dd02d1f35e287131838feec2a81c6")
("citeproc-el" . "f5217b9fdbcb41a0381ecf92108390fc843090dd")
("clojure-mode" . "28dc02114ae70db6bb68d537ea77985f272120bc")
("company-ghci" . "a1d25652583ab4666c5a78cac18cd8039776b50d")
("company-mode" . "ca045bc54411f274779057d94a1807efe7f8d2a6")
("compat" . "97f24af413a38a7f1aaedb29f5aaaa333796a5b4")
("d2-mode" . "e1fc7d6c1915acaf476060c0f79b8bdef6bd1952")
("dap-mode" . "c81014ccc390e8994b061bd2d9f8b5dd84498a3d")
("dart-mode" . "edb45cb7095b1e4f62eaae33e56fe9af5b010213")
("dash.el" . "af5ea5d8a13735fa27d2c3e6f756d065639a7b45")
("el-get" . "8d3edab760ff84baf4ce36c0b33bfb8668c6d212")
("eldoc" . "5cba6bcbd3b3d3f1ae9668cf6a1f9e2d3ebb10df")
("emacs-async" . "59f6ee68eb9bed8de12d71ca78a11dd8effbc2aa")
("emacs-direnv" . "c0bf3b81c7a97e2a0d06d05495e86848254fcc1f")
("emacs-htmlize" . "c9a8196a59973fabb3763b28069af9a4822a5260")
("emacs-request" . "c22e3c23a6dd90f64be536e176ea0ed6113a5ba6")
("emacs-web-server" . "3982c55e9061475038a3ccd61aecb2de3d407cec")
("emacs-websocket" . "40c208eaab99999d7c1e4bea883648da24c03be3")
("emacs-which-key" . "38d4308d1143b61e4004b6e7a940686784e51500")
("emacsmirror-mirror" . "dc1c32049771890965c0d498be5cced13a65296a")
("emacsql" . "bc6713fb763388f43111ba1488df9263d5dc505b")
("eros" . "a9a92bdc6be0521a6a06eb464be55ed61946639c")
("esup" . "4b49c8d599d4cc0fbf994e9e54a9c78e5ab62a5f")
("exec-path-from-shell" . "4896a797252fbfdac32fb77508500ac7d220f717")
("f.el" . "931b6d0667fe03e7bf1c6c282d6d8d7006143c52")
("flycheck" . "8c0dbfaa463e69efb41ef2cda9c4e89b99e266a0")
("geiser" . "c8b862f00e208f2c09bf2a2b2436af0a466a2531")
("gnu-elpa-mirror" . "4809077cd69544e81d946c7bb64c3d7e33e24ff1")
("gnuplot" . "43e9674b869475b1c2a32f045c167673eb2faae0")
("haskell-mode" . "e5d32021ea30438fb957976760b94af66a55b53b")
("helm" . "c8d147be4d89cb3355b89a645ba3703a46bad15d")
("helm-bibtex" . "6064e8625b2958f34d6d40312903a85c173b5261")
("ht.el" . "1c49aad1c820c86f7ee35bf9fff8429502f60fef")
("hydra" . "59a2a45a35027948476d1d7751b0f0215b1e61aa")
("imenu-list" . "76f2335ee6f2f066d87fe4e4729219d70c9bc70d")
("jsonrpc" . "444cafedd091815e674b6c93458ba97a55a76928")
("leaf-convert.el" . "da86654f1021445cc42c1a5a9195f15097352209")
("leaf-keywords.el" . "82ec27e3441900daedeaaebca509181f964da81f")
("leaf-tree.el" . "89c3b8842df067bba67663d309f43aa311acdccd")
("leaf.el" . "69c9b057cdeee560450c1d04a9a058235ecff0f7")
("let-alist" . "35a1dae3c540705433a510c13c8af80206b29b5f")
("llama" . "5990ae7b5cba3425252f64b9377352c9a01690d5")
("lsp-dart" . "34e2a1191f723792d5f366b314cd6b07de4f1566")
("lsp-docker" . "ff41f4a76b640d39dc238bacba7f654c297827fa")
("lsp-haskell" . "aa9b5bce355790de1fbdbe239650d704f46a19a0")
("lsp-mode" . "c0cafd07ea7e0a2d82fcd0680eb36da10356d700")
("lsp-treemacs" . "3e5550f278db74f15ebe34add0138b138207ec08")
("lsp-ui" . "030d36960338fd633a98b332bc3734c412c25ca6")
("magit" . "7de46ddeb30e095645d93d73bbbc5fe3e8565ac5")
("map" . "6ac89e5dd1084afdc1d8fdd717de11c572212428")
("markdown-mode" . "d51c469133d220823cc6ab50ff8e8743ed6e42fb")
("mcf" . "4e44b6e24d9fe7a4ce7249df79f4473c0b473232")
("melpa" . "06f8868ff6e2966b8482cd100271e1d1afc2ce79")
("nix-mode" . "719feb7868fb567ecfe5578f6119892c771ac5e5")
("nongnu-elpa" . "cdbf329f7dae98bbd39a3bf090bd01793f6d5947")
("org" . "526a7d1cc65409d5546b009f54fed28726a9457d")
("org-ref" . "6a22c20f863b997497b618507adbcc8cb10a9f86")
("org-reveal" . "f55c851bf6aeb1bb2a7f6cf0f2b7bd0e79c4a5a0")
("org-roam" . "89dfaef38b6caa3027f20f96a551dc8f194ac533")
("org-roam-bibtex" . "b065198f2c3bc2a47ae520acd2b1e00e7b0171e6")
("org-roam-ui" . "5ac74960231db0bf7783c2ba7a19a60f582e91ab")
("ox-pandoc" . "5766c70b6db5a553829ccdcf52fcf3c6244e443d")
("parsebib" . "7bfde4e4679413424a9a9af099203d5c23e32cd2")
("parseclj" . "6af22372e0fe14df882dd300b22b12ba2d7e00b0")
("parseedn" . "3407e4530a367b6c2b857dae261cdbb67a440aaa")
("pdf-tools" . "30b50544e55b8dbf683c2d932d5c33ac73323a16")
("pfuture" . "19b53aebbc0f2da31de6326c495038901bffb73c")
("php-mode" . "40b8abed3079771e060dd99a56703520dabf5be4")
("poetry.el" . "1dff0d4a51ea8aff5f6ce97b154ea799902639ad")
("posframe" . "12f540c9ad5da09673b2bca1132b41f94c134e82")
("ppp.el" . "d5d854c3006dfd268e62c7f91c2aad6f86a505b5")
("project" . "a0ebb2e9cfda339d8ebda77447c9d822fe313c2d")
("python-mode" . "fcff76c308b4409007c61492e4936e7c0b7d5aee")
("pyvenv" . "31ea715f2164dd611e7fc77b26390ef3ca93509b")
("queue" . "8df1334d54d4735d2f821790422a850dfaaa08ef")
("racket" . "22e56ce80389544d3872cf4beb4008fb514b2218")
("rainbow-delimiters" . "f40ece58df8b2f0fb6c8576b527755a552a5e763")
("rainbow-mode" . "2e6b18609c2fdd1a2dc513937a64d276fd6cf24c")
("rust-mode" . "9915b3a585a7a75e9126df9e0e9d1df8057ae3cf")
("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d")
("seq" . "da86da9bf111f68fb81efd466d76d53af5aebc00")
("sesman" . "7bca68dbbab0af26a6a23be1ff5fa97f9a18e022")
("slint-mode" . "168a6cfb90b5e36360074c83f80d5bbac2f0287e")
("spinner" . "fa117f0893788f3fe24673715a6b83bb34d238dd")
("straight.el" . "b7da472452615dc44b4ce76c64a059d6db3b7017")
("string-inflection" . "617df25e91351feffe6aff4d9e4724733449d608")
("tablist" . "fcd37147121fabdf003a70279cf86fbe08cfac6f")
("transient" . "07a104aa73b5d5e3168ba6e202ebfb60188af6ed")
("transient-dwim.el" . "cb5e0d35729fc6448553b7a17fc5c843f00e8c1d")
("treemacs" . "5fa84199501fd43e5573b1277a2b1699c7473cc1")
("web-mode" . "1eb0abb1a9bffbb33db7bbfc6efe5b48bf416d57")
("wfnames" . "164e4efa2a96bed201a0a5402e137ebeef15bcc6")
("with-editor" . "7787e19764c1089390584ac17a80129ef9afaa14")
("xref" . "63b5875528e9c8dba3abbc76dae1b49351273c1c")
("yaml-mode" . "d91f878729312a6beed77e6637c60497c5786efa")
("yaml.el" . "f99ef76c80e6fc3fcf650c4fe34e10726594a4c4"))
:gamma