Compare commits

...

226 Commits

Author SHA1 Message Date
af1a257167 Speed up LSP via lsp-booster 2025-11-27 04:01:04 +01:00
50e1703719 Remove bibliography management functionality 2025-11-25 11:08:45 +01:00
d007bb0229 Group PDF settings in a single block 2025-10-29 17:30:35 +01:00
8ceaf658a1 Disable PDF recoloring by default 2025-10-27 17:11:31 +01:00
ec4279e5c0 Simplify projectile search path 2025-10-27 17:11:05 +01:00
4473bbab7e Improve elfeed synchronization configuration 2025-09-29 17:55:12 +02:00
71bbd9576b Add timesheet email template 2025-09-29 17:54:44 +02:00
ba9370bbd4 Add keybinding to upload files to Arduino 2025-04-25 15:47:29 +02:00
fbba44d7a2 Format configuration files 2025-04-01 14:44:30 +02:00
827e1a879a Tweak Org agenda display 2025-04-01 14:22:48 +02:00
258ffa1486 Remove redundant credentials configuration 2025-04-01 14:22:16 +02:00
826b27a621 Enable PDF smooth scrolling 2025-04-01 14:21:53 +02:00
84d941ed62 Display org agenda events of the week 2025-03-04 18:04:37 +01:00
f42e7c2192 Disable upload module 2025-03-04 18:01:29 +01:00
fa19e34239 Remove Uni email configuration 2025-03-04 18:00:50 +01:00
51d2463a8d Move RSS configuration to module 2024-11-19 22:12:17 +01:00
5e0f9a61be Remove Wallabag configuration 2024-11-19 22:11:58 +01:00
e8dd98aa3c Revert "HACK: Use an alternative version of org-msg"
This reverts commit 90d56d2b24.
2024-09-16 23:10:45 +02:00
9cbcaf62ac Add org-capture-ref dependencies 2024-09-16 23:10:06 +02:00
90d56d2b24 HACK: Use an alternative version of org-msg 2024-07-04 17:20:31 +02:00
30a50895eb Make email signature more formal 2024-06-15 10:44:27 +02:00
8fc7079b10 Revert "Fix mu 1.10 layout"
This reverts commit 2e404a10b7.
2024-06-15 10:42:38 +02:00
6acb05a8a9 Replace company by corfu 2024-06-05 23:00:22 +02:00
4f7d27bd34 Adapt elfeed-protocol config to upstream changes 2023-11-20 19:44:27 +01:00
18e2a8c8b6 Add french signature snippet 2023-10-04 16:12:50 +02:00
8d67a93b4e Set important tasks due today on the time-grid 2023-09-21 17:17:33 +02:00
2e404a10b7 Fix mu 1.10 layout 2023-09-19 23:55:44 +02:00
6e436427e5 Update AOT native compilation to upstream changes 2023-09-19 23:43:39 +02:00
379ff2ec1e Enable writeroom in mardown 2023-09-19 23:42:52 +02:00
27a2755eb4 Adapt to the upstream change in the icon font 2023-09-15 15:38:33 +02:00
b6e0a698e6 Change elfeed entry font 2023-08-27 07:47:24 +02:00
039cacf3dd Restore previous session on startup 2023-08-27 07:44:27 +02:00
39c23de25f Restore placement and behaviour of restore session 2023-08-27 07:43:55 +02:00
55fc91233d Merge init.el additions from upstream 2023-08-12 04:48:05 +02:00
fb09e42be9 Remove Nix LSP support 2023-08-10 19:33:27 +02:00
a1c2007852 Remove sqlite package due to upstream inclusion 2023-08-10 19:32:52 +02:00
b94f685eb4 Revert "Set up LSP formatter for nix"
This reverts commit a550ccf9dc.
2023-07-31 20:48:15 +02:00
6035a22ce4 Enable smooth scrolling 2023-07-31 20:47:34 +02:00
52d48f4375 Improve compilation buffer closing implementation 2023-07-31 20:46:21 +02:00
bd063ca02b Revert "Disable PDF recoloring by default"
This reverts commit 518413d20d.
2023-06-12 14:04:56 +02:00
a550ccf9dc Set up LSP formatter for nix 2023-05-30 15:22:17 +02:00
8a44b7dd7e Move buffer while maintaining the cursor centered 2023-05-23 10:53:02 +02:00
3fcd65d6d2 Use os1 as light theme 2023-05-22 22:07:55 +02:00
0b7dc5996a Set up nix LSP support 2023-05-22 21:46:06 +02:00
f7baa0c089 Simplify enhanced elfeed entry visualization 2023-05-22 21:45:41 +02:00
d65a20323d Set indentation level to 2 2023-04-27 18:50:59 +02:00
34af171ca3 Move platformio keybindings to local leader 2023-04-10 22:37:39 +02:00
fdf2bc63a6 Disable Pyright's spurrious type checking 2023-03-25 02:35:42 +01:00
de5d9f5d0d Replace add-hook with doom's wrapper 2023-03-23 02:54:41 +01:00
1f183d9ef8 Show only today in agenda 2023-03-23 01:08:39 +01:00
0beb26a94a Order org agenda groups and remove redundant tasks 2023-03-23 00:48:13 +01:00
5453df478c Add email snippets 2023-03-23 00:04:56 +01:00
30a5cd3ad7 Set up embedded dev environment using PlatformIO 2023-03-23 00:04:56 +01:00
d872172bc6 Improve readability of elfeed entries 2023-02-23 00:02:15 +01:00
5c4802b371 Display header in csv-mode 2023-02-23 00:01:52 +01:00
a9ad9e54b3 Simplify org mode search hack 2023-01-27 14:01:31 +01:00
5de7e2288c Use tree-sitter for better syntax highlighting 2023-01-13 22:25:48 +01:00
518413d20d Disable PDF recoloring by default 2023-01-13 21:57:36 +01:00
72f1079538 Revert "Migrate to eglot"
This reverts commit 193dce0fa5.
2022-12-18 01:04:16 +01:00
24a3c71c13 Update org-super-agenda-groups 2022-12-11 19:19:06 +01:00
e46df2a852 Prettify org agenda 2022-12-11 19:19:06 +01:00
9711448199 Tweak the modeline so it fits the screen 2022-12-11 19:19:05 +01:00
f46b5043a2 Reduce size of the popup terminal 2022-12-11 19:19:05 +01:00
193dce0fa5 Migrate to eglot 2022-12-11 19:19:05 +01:00
1ada882299 Disable distracting LSP UI elements 2022-12-11 19:19:05 +01:00
13d6081b6a HACK: Fix search in folded sections in org-mode 2022-12-11 19:19:05 +01:00
68f5d3c8ab Reduce zoom in writeroom mode 2022-11-24 13:23:41 +01:00
f897a11a5d Remove duplicated modeline variable 2022-11-24 13:23:23 +01:00
9b8ca71e69 Remap previous/next buffer to prevent conflicts 2022-11-24 13:22:33 +01:00
309e692435 Add description to wallabag and elfeed 2022-11-24 13:22:24 +01:00
6bb4e798c3 Format +org file 2022-11-17 15:26:02 +01:00
4517547396 Remove line between header and text in org-noter 2022-11-17 15:17:38 +01:00
6404fe9d37 Set up org protocol to capture citations 2022-11-17 15:17:01 +01:00
0e39dd1adb Persist partial pomodoros and only show minutes 2022-11-01 18:58:17 +01:00
3ba5cf98ef Document the packages 2022-10-29 11:46:49 +02:00
33e17cad08 Clean up mu4e bookmarks 2022-10-28 09:37:01 +02:00
a3246af270 Update org-super-agenda groups 2022-10-28 09:36:00 +02:00
f062bcb218 Associate PDF files with bibliographic entries 2022-10-27 14:11:13 +02:00
59b9517c89 Add keybindings for previous and next buffer 2022-10-26 15:15:53 +02:00
f8c1b7c558 Fit PDF to page by default 2022-10-21 13:52:36 +02:00
b5740b6e5b Add keybinding to save mail attachments 2022-10-21 13:49:51 +02:00
a709487e14 Fix org super agenda timegrid 2022-10-20 10:50:28 +02:00
fb0c1b31b8 Modify the image snippet in org mode 2022-10-19 16:37:49 +02:00
f7b37e9248 Revert "Use delta to view diffs in Magit"
This reverts commit 7e936bfe84.
2022-10-18 14:47:33 +02:00
a83fdb2ecd Rice org super agenda 2022-10-18 00:26:52 +02:00
8c1768e1d1 Add keybinding to move to a page in pdf-view 2022-10-12 15:29:01 +02:00
5c570c5608 Switch to raw latex when editing the expression 2022-10-11 08:59:59 +02:00
70d27dc4a8 Show latex preview automatically in org mode 2022-10-11 08:59:45 +02:00
a60d59643f Update the org super agenda groups 2022-10-10 16:14:31 +02:00
7cbc1eccbb Remove = from automatic tag completion in org mode 2022-10-10 16:13:35 +02:00
a2538eba67 Update the bibliography file 2022-10-10 16:13:13 +02:00
037171f063 Show a task once if it has a schedule and deadline 2022-10-10 16:12:21 +02:00
8322c56272 Auto tangle files on save 2022-10-10 16:12:04 +02:00
89d3d153ed Add keybinding to kill an org-noter session 2022-10-10 11:55:10 +02:00
ce50237782 Add .ipynb_checkpoints to ignored directories 2022-10-10 08:56:26 +02:00
e41edb9617 Add shortcuts to access the different inboxes 2022-10-04 13:39:08 +02:00
cd12d6361d Close tags automatically in org mode 2022-10-04 09:27:41 +02:00
e24b160411 Add .envrc and .project to ignored project files 2022-10-03 11:51:09 +02:00
15ebe5b28d Save org-download images to an assets directory 2022-10-03 11:51:09 +02:00
ef04978af9 Increase the latex preview size 2022-10-03 11:51:09 +02:00
2ee4eeacdd HACK: Enable AOT native compilation 2022-10-03 11:51:09 +02:00
73039f9790 Add keybinding to insert a heading in org-noter 2022-10-03 11:50:53 +02:00
4abcfb8912 Set the default org-noter filename to the default 2022-10-01 00:58:06 +02:00
bfef58394d Wrap lines in org-mode 2022-10-01 00:52:30 +02:00
5fee719f82 Disable colors for HTML emails 2022-09-24 23:16:04 +02:00
9625e9b14f Add keybindings for elfeed and wallabag 2022-09-24 23:15:44 +02:00
58c25ac89b Move keybindings to a different file 2022-09-24 23:15:25 +02:00
298a7165aa Change magit delta themes 2022-09-19 11:30:45 +02:00
e656a9a7f9 Use mu4e as a mail client 2022-09-18 20:25:59 +02:00
c8f06f0955 Add Notes to projectile search path 2022-09-18 20:12:58 +02:00
160d71a7fc Format config.el 2022-09-18 19:04:26 +02:00
6b9ec0057f Open wallabag on its own workspace 2022-09-18 19:03:52 +02:00
88e7aeae2c Modify the splash screen actions 2022-09-18 18:55:13 +02:00
b2125f273e Set up org-noter 2022-09-18 18:07:48 +02:00
25020b6485 Save wallabag images in offline view 2022-09-12 01:53:41 +02:00
c9b615a241 Change theme to doom-one 2022-09-12 01:03:53 +02:00
b1b1edbcaf Move smartparens config to +ui 2022-09-11 22:53:50 +02:00
6e2ec43437 Set org-directory 2022-09-11 20:57:45 +02:00
9ce6fdaf23 Tweak org-super-agenda 2022-09-10 03:50:13 +02:00
2398612a6c Replace org-superstar with org-modern 2022-09-10 03:45:53 +02:00
b48ffef269 Show images by default with a limited width 2022-09-10 03:25:32 +02:00
fdcd5a4c6b Prettify code block export 2022-09-10 02:52:37 +02:00
fb1695bed4 Hide tags column in elfeed 2022-09-05 15:30:59 +02:00
7e936bfe84 Use delta to view diffs in Magit 2022-09-04 07:17:10 +02:00
32305747af Configure elfeed with Miniflux 2022-08-15 18:03:18 +02:00
f40f205bf5 Remove worskpace name from modeline 2022-08-13 14:47:51 +02:00
00ee2dbd6f Set up wallabag.el 2022-08-13 14:47:42 +02:00
10428092bd Move pdf-tools config to +ui 2022-08-01 18:06:40 +02:00
60e45e6874 Remove attach tag and change org-attach directory 2022-06-02 21:05:23 +02:00
0c1473123e Defer org-download preferences 2022-05-25 20:48:34 +02:00
1f72440b12 Save org-download images to ~/.cache 2022-05-25 11:55:18 +02:00
e085d2a740 Set the logo in the bottom in metropolis 2022-05-23 18:13:12 +02:00
ce35c7cade Use relative line numbers 2022-05-08 16:06:46 +02:00
7df7854787 Fit PDF to width by default 2022-05-04 23:43:43 +02:00
83477573a1 Add a function that returns the pomodoro state 2022-04-12 20:25:18 +02:00
fc2ebefa68 Set up org-chef with a capture template 2022-04-03 18:15:31 +02:00
c325d268dc Disable annoying Word-like functions 2022-03-21 19:19:51 +01:00
91428a22c3 fixup! Merge init.el additions from upstream 2022-03-21 19:12:48 +01:00
c309db78d5 Add UGent logo to metropolis presentation 2022-03-21 15:58:21 +01:00
3b6e996bf9 Set audio player for org-pomodoro 2022-03-21 15:30:41 +01:00
5cc92ce0d8 Merge init.el additions from upstream 2022-03-21 15:30:17 +01:00
459ef84df0 Try out the tomato technique 2022-03-21 11:26:35 +01:00
971cc7e5cb Disable writeroom in markdown-mode 2022-03-11 11:54:01 +01:00
e244dac20c Open org files with folded headings in Emacs 29 2022-02-15 00:03:47 +01:00
cbc4c89161 Change bibliography file location 2021-12-28 02:27:53 +01:00
e5fb8d625d Revert "Add workarounds for Emacs 29"
This reverts commit 3ee83cc4e1.
2021-12-28 02:27:35 +01:00
3ee83cc4e1 Add workarounds for Emacs 29 2021-12-09 17:26:45 +01:00
aaa86d9c85 Add directory depth to projectile search paths 2021-11-23 12:34:49 +01:00
eab69da4d8 Change the default bibliography file 2021-11-22 20:17:25 +01:00
b4818d0e20 Unset org-mode as the default mode 2021-11-22 17:03:41 +01:00
c04d688c14 Add Paperwork to projectile search path 2021-11-15 22:05:32 +01:00
f80b35e6f2 Update projectile search path 2021-11-09 16:31:18 +01:00
d8fea95751 Add metropolis presentation snippet 2021-10-26 10:47:25 +02:00
7d4debaede Configure clangd as LSP server 2021-10-20 10:42:07 +02:00
19ad6fcf10 Categorize org-super-agenda based on deadlines 2021-10-19 15:42:57 +02:00
8bfe16a8aa Ignore the direnv directory in projectile 2021-10-19 10:16:11 +02:00
969a3d92fa Become a proper greybeard bioinformatician 2021-10-18 17:19:44 +02:00
75d304022e Remove Spanish language from org-mode snippets 2021-10-11 18:59:14 +02:00
a093924ef7 Replace UGR with UGent logo in eisvogel snippet 2021-10-06 11:51:21 +02:00
4473a6c9bc Autosave files to ~/.cache 2021-09-07 13:31:05 +02:00
54e20121be Remove Magit repositories 2021-08-01 19:09:23 +01:00
83ecb87645 Shrink vertico window to show 8 elements 2021-07-31 19:56:24 +01:00
e6c28bbbb6 Replace deprecated ipython flag with jupyter 2021-07-31 18:07:26 +01:00
5600e4aea6 Revert "Add org-ref integation to biblio module"
This reverts commit 7a899af24b.
2021-07-31 14:08:02 +01:00
5074f44b14 Replace ivy with vertico 2021-07-31 13:39:27 +01:00
234645b604 Disable LSP for shell scripts 2021-07-29 22:46:26 +02:00
be595c4c24 Enable LSP for shell and LaTeX 2021-07-21 13:48:24 +02:00
7a899af24b Add org-ref integation to biblio module 2021-07-04 01:40:43 +02:00
b9e6c9a616 Improve academic org mode options 2021-07-02 17:07:10 +02:00
977744ce59 Change default bibliography file location 2021-07-02 17:06:53 +02:00
378d2fe4e6 Set up bibliography management 2021-06-27 21:21:23 +02:00
8537a95d75 Add org-plain-latex template 2021-06-24 15:25:24 +02:00
3b566848fc Replace term with vterm 2021-06-24 15:24:51 +02:00
889bf1cd36 Set org-mode as the default 2021-06-17 12:00:01 +02:00
98c80dcef9 Disable redundant modules 2021-05-26 22:59:25 +02:00
6ec9c1e5e3 Add reveal.js presentation metadata snippet 2021-05-19 14:25:11 +02:00
49729c3ccf Add tufte-handout LaTeX class and org mode snippet 2021-05-05 15:26:22 +02:00
0d070204d8 Change date format in eisvogel template snippet 2021-04-24 13:57:53 +02:00
3b319eb911 All color for URLs in eisvogel template snippet 2021-04-20 21:20:44 +02:00
afeedc44c9 Lazy-load projectile file ignore 2021-04-01 16:42:22 +02:00
bc521cb73a Ignore empty files in projectile 2021-03-23 23:52:27 +01:00
592f79045f Remove Dart icon hack now that it's fixed upstream 2021-02-22 00:57:23 +01:00
e8e04de380 Add Typesetting folder to projectile-search-path 2021-02-17 16:43:19 +01:00
c35bb8840c Enable LSP for ess 2021-02-15 23:42:38 +01:00
05cdc26582 Use Emacs icon as the splash-screen banner 2021-02-11 00:01:30 +01:00
1a83f5159e Add Work documents to projectile-search-path 2021-02-10 23:38:48 +01:00
f52ed235f4 Ignore development databases folders in LSP 2021-02-10 01:31:24 +01:00
86b2fd2169 Enable poetry support in Python module 2021-02-09 19:15:50 +01:00
2a6257a689 Shrink terminal buffer 2021-02-03 02:37:30 +01:00
a7b83c7e54 Auto-categorize events in org-super-agenda 2021-01-20 14:31:16 +01:00
d151287226 Enhance and prettify font 2021-01-19 02:29:39 +01:00
b626dce91e Become an academic 2021-01-18 01:22:58 +01:00
c24e096011 Become a statistics expert 2021-01-14 12:04:14 +01:00
4310375e44 Enable LSP for flutter 2021-01-14 12:03:58 +01:00
c35dc58f00 Trigger flycheck only after saving the buffer 2021-01-12 23:01:41 +01:00
cca6cdef5e Remove lsp header line 2021-01-07 00:59:01 +01:00
42b99fbb5d Disable LSP for PHP 2020-11-30 00:00:30 +01:00
1298ebdcf7 Remove lsp code actions on the modeline 2020-11-09 11:58:12 +01:00
c676f90d13 Remove local dash docsets 2020-11-09 00:40:39 +01:00
2031e24dab Run babel commands in a persistent session 2020-11-01 11:46:42 +01:00
678c52909b Remove lsp code actions on the sideline 2020-10-25 18:44:18 +01:00
2e221b913e Become a modern app developer 2020-10-25 11:58:58 +01:00
1ad29ad70f Remove lsp distracting variable highlight 2020-10-13 03:18:31 +02:00
2d74c3a675 Open org mode files with folded headlines 2020-10-12 16:35:37 +02:00
7c8dd7acfc Add subtitle to article metadata snippet 2020-10-11 02:51:29 +02:00
c1d3ac52a6 Unblock nix by disabling company mode 2020-10-06 01:48:18 +02:00
46f629b479 Export org babel results with pandoc 2020-09-22 15:36:52 +02:00
0a2980db32 Improve UX by eliminating nagging 2020-09-22 03:00:41 +02:00
038d8d0215 Remove gaps between windows 2020-09-06 16:58:29 +02:00
04f6fb5abf Enable LSP for java 2020-09-02 18:32:41 +02:00
edf3fa34d0 Show matching parenthesis on the minibuffer 2020-09-02 18:32:17 +02:00
aba11a76a3 Revert company mode custom delay before completion 2020-09-01 18:01:47 +02:00
2ca8b61e68 Remove local programming language docsets 2020-09-01 18:01:00 +02:00
35bccb49a4 Replace mspyls with pyright 2020-08-26 17:51:59 +02:00
9c386ba5c1 Revert "Disable company exclusively on Nix"
This reverts commit 53b4fffbee.
2020-08-23 13:22:01 +02:00
c1cec965b3 Change appearance of org mode bullets 2020-08-23 13:20:17 +02:00
3d0ab84f06 Revert "Map light/dark theme toggle to SPC t t"
This reverts commit 666490c13f.
2020-08-11 10:22:53 +02:00
666490c13f Map light/dark theme toggle to SPC t t 2020-07-19 20:54:56 +02:00
cbaac3a67b Set up latex article metadata snippet 2020-07-19 13:45:58 +02:00
53b4fffbee Disable company exclusively on Nix 2020-07-10 00:03:39 +02:00
3c5aa45749 Map local leader key to , 2020-07-10 00:02:43 +02:00
b8aec662cf Use Microsoft python LSP by default 2020-07-03 12:47:51 +02:00
5d6c600b1f Speed up company mode 2020-07-03 12:47:39 +02:00
cf77a594c6 Disable LSP documentation popup 2020-07-01 18:55:30 +02:00
dab3d10b6d Shrink minibuffer size 2020-07-01 18:55:20 +02:00
0f6745d8aa Speed up Nix mode and Org Agenda 2020-07-01 18:54:44 +02:00
19 changed files with 685 additions and 111 deletions

38
+keybindings.el Normal file
View File

@@ -0,0 +1,38 @@
;;; +keybindings.el -*- lexical-binding: t; -*-
;; Custom keybindings
;;
;; Select target in Makefile compilation as default
(map! :leader :n "c c" #'makefile-executor-execute-project-target)
;; Keybindings for R markdown polymode
(map! :map poly-markdown+R-mode-map
:n "RET" #'polymode-eval-chunk
:desc "Evaluate code block")
;; Map elfeed to global keybinding
(map! :leader :n "o e" #'=rss
:desc "RSS reader")
;; Keybindings for org-noter
(map! :mode pdf-view-mode
:n "i" #'org-noter-insert-note
:desc "Insert note with a subheading")
(map! :mode pdf-view-mode
:n "x" #'org-noter-kill-session
:desc "Kill the current org-noter session")
;; Keybindings for pdf-view
(map! :mode pdf-view-mode
:n ":" #'pdf-view-goto-page
:desc "Move to the selected page")
;; Keybindings for mu4e
(map! :mode mu4e-view-mode
:n "S" #'mu4e-view-save-attachments
:desc "Save the chosen mail attachments")
;; Keybindings for next/previous buffer
(map! :n "C-c j" #'previous-buffer)
(map! :n "C-c k" #'next-buffer)
;; Keybindings for PlatformIO
(map! :after platformio-mode
:map platformio-mode-map
(:localleader
:desc "Compile the project" "c c" #'platformio-build
:desc "Upload the project" "c u" #'platformio-upload
:desc "Monitor the serial console" "c m" #'platformio-device-monitor
:desc "Upload data files" "c d" #'platformio-spiffs-upload))

45
+mail.el Normal file
View File

@@ -0,0 +1,45 @@
;;; +mail.el -*- lexical-binding: t; -*-
;; Mu4e configuration
;;
;; Set up the default email identity
(setq user-full-name "Amin Kasrou Aouam")
;; Use msmtp to send email
(setq sendmail-program (executable-find "msmtp")
send-mail-function #'smtpmail-send-it
message-sendmail-f-is-evil t
message-sendmail-extra-arguments '("--read-envelope-from")
message-send-mail-function #'message-send-mail-with-sendmail)
;; Account configuration
(set-email-account! "gmail"
'((mu4e-sent-folder . "/gmail/sent")
(mu4e-drafts-folder . "/gmail/drafts")
(mu4e-trash-folder . "/gmail/trash")
(mu4e-refile-folder . "/gmail/archive")
(smtpmail-smtp-user . "akasroua@gmail.com")
(user-mail-address . "akasroua@gmail.com"))
t)
(set-email-account! "disroot"
'((mu4e-sent-folder . "/disroot/sent")
(mu4e-drafts-folder . "/disroot/drafts")
(mu4e-trash-folder . "/disroot/trash")
(mu4e-refile-folder . "/disroot/archive")
(smtpmail-smtp-user . "akasroua@disroot.org")
(user-mail-address . "akasroua@disroot.org"))
t)
;; Configure mu4e contexts
(setq mu4e-context-policy 'ask-if-none
mu4e-compose-context-policy 'ask-if-none)
;; Run lazy check when syncing
(setq mu4e-index-lazy-check t)
;; Use ISO dates
(setq mu4e-headers-date-format "%Y-%m-%d %H:%M")
;; Disable colors for HTML emails
(setq shr-use-colors nil)
;; Use shortcuts to access inboxes easily
(setq mu4e-maildir-shortcuts
'(("/disroot/inbox" . ?d)
("/gmail/inbox" . ?g)))
;; Change mu4e bookmarks
(setq mu4e-bookmarks '((:name "Unread messages" :query "flag:unread AND NOT flag:trashed" :key 117)
(:name "Today's messages" :query "date:today..now" :key 116)
(:name "Last 7 days" :query "date:7d..now" :hide-unread t :key 119)))

164
+org.el
View File

@@ -1,39 +1,175 @@
;;; ~/.doom.d/+org.el -*- lexical-binding: t; -*-
;; Org mode configuration
;;
(setq org-ellipsis ""
org-bullets-bullet-list '("" "" "" ""))
(setq org-ellipsis "")
;; Cycle through header visibility
(after! evil-org
(remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h))
;; Disable completion
(set-company-backend! 'org-mode nil)
;; Turn off line numbers
(add-hook 'org-mode-hook (lambda () (display-line-numbers-mode -1)))
(add-hook! 'org-mode-hook (display-line-numbers-mode -1))
;; Add Notes to agenda
(setq org-agenda-files '("~/Notes"))
;; Tailor Org super agenda
(use-package! org-super-agenda
:after org-agenda
:init
(setq org-super-agenda-groups '((:name "Due today"
:deadline today)
(setq org-agenda-skip-scheduled-if-done t
org-agenda-skip-deadline-if-done t
org-agenda-skip-scheduled-delay-if-deadline t
org-agenda-skip-deadline-prewarning-if-scheduled t
org-deadline-warning-days 0
org-agenda-include-deadlines t
org-agenda-tags-column 100
org-agenda-block-separator nil
org-agenda-compact-blocks t
org-agenda-start-day nil
org-agenda-span 7
org-agenda-start-on-weekday 0)
(setq org-super-agenda-groups '((:name "Overdue"
:deadline past
:order 0)
(:name "Important"
:priority "A")
(:name "Overdue"
:deadline past)
(:name "Due soon"
:deadline future)))
:and (:priority "A" :deadline future)
:order 1)
(:name "Today"
:time-grid t
:scheduled today
:deadline today
:order 2)
(:name "Assignments"
:tag "labs"
:order 3)
(:name "Mails"
:tag "mail"
:order 4)
(:name "Errands"
:tag ("errand" "call")
:order 10)
(:name "Projects"
:file-path "Projects"
:order 6)
(:discard (:tag ("periodic" "birthday")))))
:config
(org-super-agenda-mode))
;; Add timestamp to DONE task
(setq org-log-done 'time)
;; Print babel results to the buffer
(setq org-babel-default-header-args '((:session . "none") (:results . "output") (:exports . "both")
(:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no")))
;; Print babel results to the buffer and export them
(setq org-babel-default-header-args '((:session . "default") (:results . "output") (:exports . "both")
(:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no"))
org-babel-default-lob-header-args '((:exports . "both")))
;; Enter writeroom-mode in all org files
(add-hook 'org-mode-hook 'global-writeroom-mode)
(add-hook! 'org-mode-hook 'global-writeroom-mode)
(add-hook! 'org-mode-hook 'visual-line-mode)
;; Respect LANGUAGE export variable
(add-to-list 'org-latex-packages-alist '("AUTO" "babel" t ("pdflatex")))
;; Don't evaluate code blocks on export
(setq org-export-use-babel nil)
;; Speed up agenda startup
(setq org-agenda-dim-blocked-tasks nil)
;; Open file with folded headlines
(setq org-startup-folded t)
;; Add tufte-handout to LaTeX classes
(after! ox-latex
(add-to-list 'org-latex-classes
'("tufte-handout"
"\\documentclass{tufte-handout}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))))
;; Add org-plain-latex
(after! ox-latex
(add-to-list 'org-latex-classes
'("org-plain-latex"
"\\documentclass{article}
[NO-DEFAULT-PACKAGES]
[PACKAGES]
[EXTRA]"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))))
;; Prettify code block export
(use-package! engrave-faces-latex
:after ox-latex)
(setq org-latex-src-block-backend 'engraved)
;; Add citeproc and metadata-file options to ox-pandoc
(after! ox-pandoc
(add-to-list 'org-pandoc-valid-options 'citeproc)
(add-to-list 'org-pandoc-valid-options 'metadata-file))
;; Allow referencing by label in org-ref
(setq org-latex-prefer-user-labels t)
;; Extend pomodoro length to 45/15
(setq org-pomodoro-length '45
org-pomodoro-short-break-length '15
org-pomodoro-long-break-length '30
org-pomodoro-audio-player "pw-play"
org-pomodoro-time-format "%.2m min"
org-pomodoro-keep-killed-pomodoro-time t)
;; Define declarative org capture remplates
(use-package! doct
:commands doct)
(setq org-capture-templates
(doct `(("Cookbook" :keys "c"
:file "~/Notes/Recipes.org"
:type entry
:template ("%(org-chef-get-recipe-from-url)"))
;; Fix org-chef scraping
(setq org-chef-prefer-json-ld t)
;; Get the current state of org-pomodoro
(defun bergheim/org-clock-status ()
"Return the org time status - including any pomodoro activity"
(if (and (featurep 'org-pomodoro) (org-pomodoro-active-p))
(cl-case org-pomodoro-state
(:pomodoro
(format "%d min" (/ (org-pomodoro-remaining-seconds) 60)))
(:short-break
(format "Short break: %d min" (/ (org-pomodoro-remaining-seconds) 60)))
(:long-break
(format "Long break: %d min" (/ (org-pomodoro-remaining-seconds) 60)))
(:overtime
(format "Overtime! %d min" (/ (org-pomodoro-remaining-seconds) 60))))
(if (org-clocking-p)
(format "%s" (org-duration-from-minutes (org-clock-get-clocked-time)))
"")))
;; Save org-download images to an assets directory
(after! org-download
(setq org-download-image-dir "assets/"
org-attach-auto-tag nil))
;; Show images by default with a limited width
(setq org-startup-with-inline-images t
org-image-actual-width 600)
;; Use a modern look
(use-package! org-modern
:hook (org-mode . org-modern-mode)
:config
(setq org-modern-star [""]))
(add-hook! 'org-agenda-finalize-hook #'org-modern-agenda)
;; Configure a better split and some default for org-noter
(after! org-noter
(setq org-noter-always-create-frame nil
org-noter-doc-split-fraction '(0.7 . 0.3)
org-noter-default-heading-title " "
org-noter-separate-notes-from-heading nil))
;; Show latex preview automatically and increase its size
(setq org-startup-with-latex-preview t
org-format-latex-options (plist-put org-format-latex-options :scale 3.0))
;; Close tags automatically
(after! smartparens
(sp-with-modes 'org-mode
(sp-local-pair "*" "*")
(sp-local-pair "_" "_")
(sp-local-pair "/" "/")
(sp-local-pair "~" "~")
(sp-local-pair "$" "$")))
;; Only show a task once if it has a schedule and deadline
(setq org-agenda-skip-deadline-prewarning-if-scheduled t)
;; Show raw latex when the cursor on the expression
(add-hook! 'org-mode-hook 'org-fragtog-mode)
;; Auto tangle on save
(add-hook! 'org-mode-hook 'org-auto-tangle-mode)
;; HACK Fix search folded sections
(setq org-fold-core-style 'overlays)
(evil-select-search-module 'evil-search-module 'evil-search)

32
+rss.el Normal file
View File

@@ -0,0 +1,32 @@
;;; +rss.el -*- lexical-binding: t; -*-
;; Elfeed configuration
;;
;; Synchronize elfeed with Miniflux
(setq elfeed-use-curl t
elfeed-protocol-enabled-protocols '(fever)
elfeed-protocol-feeds (list
(list "fever+https://coolneng@rss.psydnd.org"
:api-url "https://rss.psydnd.org/fever/"
:password (auth-source-pass-get 'secret "api/miniflux")))
elfeed-protocol-lazy-sync t
elfeed-sort-order 'ascending
elfeed-search-filter "@all +unread"
elfeed-goodies/tag-column-width 0)
(elfeed-protocol-enable)
;; Update RSS feeds on startup
(add-hook! 'elfeed-search-mode-hook 'elfeed-update)
;; Use different font and show article in fullscreen
(setq elfeed-show-entry-switch #'switch-to-buffer)
(defadvice! +rss-elfeed-wrap-h-nicer ()
"Enhances an elfeed entry's readability by wrapping it to a width of
`fill-column' and centering it with `visual-fill-column-mode'."
:override #'+rss-elfeed-wrap-h
(setq-local truncate-lines nil
shr-width 160
visual-fill-column-center-text t
default-text-properties '(line-height 1.1))
(let ((inhibit-read-only t)
(inhibit-modification-hooks t))
(visual-fill-column-mode)
(setq-local shr-current-font '(:family "Lato" :height 1.1))
(set-buffer-modified-p nil)))

75
+ui.el
View File

@@ -1,19 +1,80 @@
;;; ~/.doom.d/+ui.el -*- lexical-binding: t; -*-
;; Appearance settings
;; Set Font and theme
(setq doom-font (font-spec :family "Iosevka Medium" :size 24)
doom-theme 'doom-nord)
(setq doom-font (font-spec :family "Iosevka Medium" :size 26)
doom-theme 'doom-one)
;; Display Magit status in fullscreen
(after! magit
(setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1))
;; Match pdf-tools colors to the theme
;; Match pdf-tools colors to the theme, fit to page by default and enable smooth scrolling
(after! pdf-tools
(setq pdf-view-midnight-colors '("#ECEFF4" . "#2E3440"))
(add-hook 'pdf-tools-enabled-hook 'pdf-view-midnight-minor-mode))
(setq pdf-view-midnight-colors '("#BBC2CF" . "#282C34"))
(setq-default pdf-view-display-size 'fit-width)
(add-hook 'pdf-tools-enabled-hook 'pdf-view-roll-minor-mode))
;; Customize modeline
(setq doom-modeline-major-mode-icon t
doom-modeline-persp-name t
doom-modeline-buffer-encoding nil)
(setq evil-command-window-height 3)
;; Hide direnv environment variables popup
(setq direnv-always-show-summary nil)
;; Change splash-screen banner
(setq fancy-splash-image "~/.doom.d/assets/emacs.svg")
;; Disable LSP documentation popup
(after! lsp-ui
(setq lsp-ui-doc-enable nil
lsp-signature-auto-activate nil
lsp-enable-symbol-highlighting nil
lsp-ui-sideline-enable nil
lsp-modeline-code-actions-enable nil
lsp-headerline-breadcrumb-enable nil
lsp-len-enable nil))
;; Shrink minibuffer
(after! vertico
(setq vertico-count 8))
;; Eliminate gaps between windows
(after! frame
(remove-hook 'doom-init-ui-hook #'window-divider-mode))
;; Reduce size of the popup terminal
(set-popup-rule! "*doom:vterm-popup:*" :size 0.25 :vslot -4 :select t :quit nil :ttl 0)
;; Show matching parenthesis on the minibuffer
(after! smartparens (show-smartparens-global-mode t))
;; Modify the splash screen actions
(setq +doom-dashboard-menu-sections
'(("Reload last session"
:icon (nerd-icons-octicon "nf-oct-history" :face 'doom-dashboard-menu-title)
:when (cond ((modulep! :ui workspaces)
(file-exists-p (expand-file-name persp-auto-save-fname persp-save-dir)))
((require 'desktop nil t)
(file-exists-p (desktop-full-file-name))))
:face (:inherit (doom-dashboard-menu-title bold))
:action doom/quickload-session)
("Open org-agenda"
:icon (nerd-icons-octicon "nf-oct-calendar" :face 'doom-dashboard-menu-title)
:when (fboundp 'org-agenda)
:action org-agenda)
("Recently opened files"
:icon (nerd-icons-faicon "nf-fa-file_text" :face 'doom-dashboard-menu-title)
:action recentf-open-files)
("Open email client"
:icon (nerd-icons-octicon "nf-oct-mail" :face 'doom-dashboard-menu-title)
:when (featurep! :email mu4e)
:face (:inherit (doom-dashboard-menu-title bold))
:action =mu4e)
("RSS reader"
:icon (nerd-icons-octicon "nf-oct-rss" :face 'doom-dashboard-menu-title)
:when (featurep! :app rss)
:face (:inherit (doom-dashboard-menu-title bold))
:action =rss)
("Read saved articles"
:icon (nerd-icons-octicon "nf-oct-book" :face 'doom-dashboard-menu-title)
:face (:inherit (doom-dashboard-menu-title bold))
:action =wallabag)))
;; Restore previous session without confirmation
(defadvice! restore-no-confirm-session-quickload-a ()
:override #'doom/quickload-session
(message "Restoring session...")
(doom-load-session)
(message "Session restored. Welcome back."))
;; Decrease size of icons in the modeline
(setq nerd-icons-scale-factor 1.0)
;; Increase size of the PlatformIO compilation buffer
(set-popup-rule! "*platformio*" :size 0.25 :vslot -4 :select t :quit t :ttl 0)

76
assets/emacs.svg Normal file
View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg6612" sodipodi:version="0.32" inkscape:version="0.45.1" width="270" height="217" version="1.0" sodipodi:docbase="/home/sphinx/images" sodipodi:docname="Emacs-logo.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata id="metadata6617">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<cc:license rdf:resource="http://creativecommons.org/licenses/GPL/2.0/"/>
<dc:creator>
<cc:Agent>
<dc:title>Dmitry Dzhus</dc:title>
</cc:Agent>
</dc:creator>
<dc:date>2007-07</dc:date>
<dc:title>Emacs logo</dc:title>
<dc:subject>
<rdf:Bag>
<rdf:li>emacs</rdf:li>
<rdf:li>logo</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>Emacs logo by Luis Fernandes was created in 2001. This is an SVG version created by hand from scratch in Inkscape.</dc:description>
<dc:language>en</dc:language>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
<cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
<cc:requires rdf:resource="http://web.resource.org/cc/SourceCode"/>
</cc:License>
</rdf:RDF>
</metadata>
<defs id="defs6615"/>
<sodipodi:namedview inkscape:window-height="990" inkscape:window-width="1276" inkscape:pageshadow="2" inkscape:pageopacity="0.0" guidetolerance="10.0" gridtolerance="10.0" objecttolerance="10.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:zoom="1.7926268" inkscape:cx="227.95993" inkscape:cy="149.03165" inkscape:window-x="0" inkscape:window-y="0" inkscape:current-layer="svg6612"/>
<g id="g2240" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(-4.7334344,4.3389815)">
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 176.57988,37.972907 C 174.9871,39.007967 168.87448,51.953525 168.7783,53.533221 C 180.64186,73.113933 202.57955,40.078784 206.55381,24.980764 C 206.55381,24.980764 196.17124,43.179003 186.77317,43.526939 C 175.75676,43.93479 178.17554,36.935973 176.57988,37.972907 z " id="path2242" sodipodi:nodetypes="cccsz"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 22.47173,15.758997 L 15.81003,32.485756 C 15.81003,32.485756 19.89052,42.218104 26.49069,42.838195 C 41.61737,44.259359 58.45245,15.619537 63.19409,15.758997 C 67.93574,15.898457 77.55353,23.422298 82.6657,33.922656 C 89.39535,20.759071 97.58642,14.911225 111.16839,24.667015 C 119.07042,30.342966 135.58934,52.795226 145.47559,53.901349 C 156.18021,55.099037 165.37798,44.912817 169.81138,26.288239 C 163.67513,34.237468 161.1768,37.806706 155.0286,38.212082 C 148.68317,38.630462 149.241,39.885604 127.06684,16.874679 C 104.89268,-6.1362469 94.43317,4.8811053 87.87854,14.643316 C 86.41421,13.039524 78.99699,1.01863 70.05858,1.1156811 C 63.72511,1.1844483 53.17415,16.174161 46.86414,21.616488 C 40.30897,27.270272 36.37856,28.267647 33.99471,28.294944 C 30.30074,28.339067 25.84923,26.450798 22.47173,15.758997 z " id="path2244" sodipodi:nodetypes="ccsscsscsscsssc"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 76.60517,33.616604 C 59.9071,53.934058 59.23819,54.418087 50.46092,68.860929 C 41.68365,83.303771 39.35397,92.905012 43.4733,96.486252 C 47.62389,100.09467 55.01913,100.29382 64.07871,93.597586 C 76.68602,83.936084 93.51416,70.148169 98.13382,58.409876 C 99.33455,55.358876 77.4725,76.054153 68.69926,81.186233 C 63.43563,84.265304 56.36004,85.075126 52.55923,81.397725 C 44.80291,73.893236 79.52343,36.77475 76.60517,33.616604 z " id="path2246" sodipodi:nodetypes="csscsssc"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 101.40617,64.709511 C 101.3713,63.070854 109.84351,50.554306 111.30784,50.066195 C 132.55351,64.354287 121.48844,101.10862 114.51543,104.3162 C 114.51543,104.3162 115.7357,88.557199 112.56298,78.655527 C 109.39026,68.753854 101.4411,66.351131 101.40617,64.709511 z " id="path2248" sodipodi:nodetypes="cccsz"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 212.01995,32.790058 C 210.0143,24.25611 219.12924,1.1854142 230.75546,1.1854142 C 259.78347,1.1854142 245.6869,47.473559 240.02956,64.570053 C 226.22301,100.34158 217.47477,153.8249 216.87918,158.42673 C 216.15214,164.0442 207.47903,179.09487 211.85861,154.24293 C 216.23819,129.39099 224.1069,100.38994 233.56074,66.549824 C 238.51906,48.801431 244.54954,17.14762 227.7868,17.100791 C 219.23545,16.991458 219.72047,23.025811 212.01995,32.790058 z " id="path2250" sodipodi:nodetypes="cscssscc"/>
</g>
<g id="g2233" style="stroke:none">
<path sodipodi:nodetypes="cccsz" id="path9706" d="M 176.57988,37.972907 C 174.9871,39.007967 168.87448,51.953525 168.7783,53.533221 C 180.64186,73.113933 202.57955,40.078784 206.55381,24.980764 C 206.55381,24.980764 196.17124,43.179003 186.77317,43.526939 C 175.75676,43.93479 178.17554,36.935973 176.57988,37.972907 z " style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccsscsscsscsssc" id="path7673" d="M 22.47173,15.758997 L 15.81003,32.485756 C 15.81003,32.485756 19.89052,42.218104 26.49069,42.838195 C 41.61737,44.259359 58.45245,15.619537 63.19409,15.758997 C 67.93574,15.898457 77.55353,23.422298 82.6657,33.922656 C 89.39535,20.759071 97.58642,14.911225 111.16839,24.667015 C 119.07042,30.342966 135.58934,52.795226 145.47559,53.901349 C 156.18021,55.099037 165.37798,44.912817 169.81138,26.288239 C 163.67513,34.237468 161.1768,37.806706 155.0286,38.212082 C 148.68317,38.630462 149.241,39.885604 127.06684,16.874679 C 104.89268,-6.1362469 94.43317,4.8811053 87.87854,14.643316 C 86.41421,13.039524 78.99699,1.01863 70.05858,1.1156811 C 63.72511,1.1844483 53.17415,16.174161 46.86414,21.616488 C 40.30897,27.270272 36.37856,28.267647 33.99471,28.294944 C 30.30074,28.339067 25.84923,26.450798 22.47173,15.758997 z " style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path sodipodi:nodetypes="csscsssc" id="path8693" d="M 76.60517,33.616604 C 59.9071,53.934058 59.23819,54.418087 50.46092,68.860929 C 41.68365,83.303771 39.35397,92.905012 43.4733,96.486252 C 47.62389,100.09467 55.01913,100.29382 64.07871,93.597586 C 76.68602,83.936084 93.51416,70.148169 98.13382,58.409876 C 99.33455,55.358876 77.4725,76.054153 68.69926,81.186233 C 63.43563,84.265304 56.36004,85.075126 52.55923,81.397725 C 44.80291,73.893236 79.52343,36.77475 76.60517,33.616604 z " style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path sodipodi:nodetypes="cccsz" id="path9704" d="M 101.40617,64.709511 C 101.3713,63.070854 109.84351,50.554306 111.30784,50.066195 C 132.55351,64.354287 121.48844,101.10862 114.51543,104.3162 C 114.51543,104.3162 115.7357,88.557199 112.56298,78.655527 C 109.39026,68.753854 101.4411,66.351131 101.40617,64.709511 z " style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path sodipodi:nodetypes="cscssscc" id="path2171" d="M 212.01995,32.790058 C 210.0143,24.25611 219.12924,1.1854142 230.75546,1.1854142 C 259.78347,1.1854142 245.6869,47.473559 240.02956,64.570053 C 226.22301,100.34158 217.47477,153.8249 216.87918,158.42673 C 216.15214,164.0442 207.47903,179.09487 211.85861,154.24293 C 216.23819,129.39099 224.1069,100.38994 233.56074,66.549824 C 238.51906,48.801431 244.54954,17.14762 227.7868,17.100791 C 219.23545,16.991458 219.72047,23.025811 212.01995,32.790058 z " style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
</g>
<g style="fill:#000000;fill-opacity:1;stroke:none" id="g2256" transform="translate(0.8166413,4.3944529)">
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 79.886738,152.50463 C 67.822172,155.61715 50.502331,192.18769 49.743523,198.14195 C 52.532726,198.83925 111.02019,130.19512 80.295208,193.81167 C 102.57324,174.95912 124.9556,141.04167 107.8027,183.94795 C 103.74903,194.08781 123.59559,194.09426 142.96938,172.96563 C 137.88975,176.22186 112.22868,191.62171 126.35499,159.60889 C 133.77483,142.79418 109.21923,159.41447 102.3683,165.83729 C 103.80096,159.33343 108.94433,147.78354 100.61675,150.98227 C 92.289176,154.181 83.310373,160.6892 67.937825,175.11509 C 76.765795,160.89643 77.224181,159.40756 79.886738,152.50463 z " id="path2258" sodipodi:nodetypes="cccscscscc"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 248.85492,188.50638 C 263.21933,186.53398 284.36437,164.67209 255.21207,163.30784 C 223.17817,161.81588 262.88238,150.47751 262.88238,150.47751 C 245.58932,149.36183 214.14946,168.68613 239.80172,165.74839 C 265.63062,162.76646 265.93049,186.17596 239.24388,186.14445 C 235.50916,186.14004 236.66387,182.41388 236.66387,182.41388 L 225.77752,187.22526 C 236.0826,190.18366 240.70876,189.62494 248.85492,188.50638 z " id="path2260" sodipodi:nodetypes="cscssccs"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 35.422878,148.66454 C 20.150885,157.04591 -6.2772909,190.95274 6.2647537,199.01662 C 17.984924,206.55208 68.941642,170.29445 77.667057,153.75538 C 4.3035383,211.52619 14.065561,174.90254 27.008448,162.02628 C 35.805465,151.30801 64.004057,143.68513 71.481066,128.52052 C 32.789119,149.29474 30.405114,131.50519 62.642197,110.82103 C 68.569623,107.02504 107.74937,89.042889 77.768775,114.28261 C 95.502651,106.02716 110.52675,93.267855 98.941531,90.767173 C 83.884151,87.517022 60.202847,105.92694 48.092626,115.80927 C 40.969928,121.62162 11.868522,145.38354 35.422878,148.66454 z " id="path2262" sodipodi:nodetypes="cscccscssc"/>
<g style="fill:#000000;fill-opacity:1;stroke:none" id="g2264">
<path sodipodi:nodetypes="ccc" id="path2266" d="M 153.52386,181.54504 C 114.3973,212.57672 133.43947,164.59338 180.00502,149.95001 C 144.43247,174.12306 139.76476,184.61018 153.52386,181.54504 z " style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccc" id="path2268" d="M 196.30981,176.96638 C 156.1373,209.46239 150.29865,172.10195 184.30492,155.10468 C 167.14111,181.92747 183.59666,177.6607 196.30981,176.96638 z " style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 229.3687,178.97034 C 185.57023,211.04797 178.47643,161.27557 237.30661,150.27509 C 188.34589,179.18978 219.44475,183.56954 229.3687,178.97034 z " id="path2270" sodipodi:nodetypes="ccc"/>
</g>
<g id="g2201" style="fill:#2076c1;fill-opacity:1;stroke:none">
<path sodipodi:nodetypes="cccscscscc" id="path2173" d="M 79.886738,152.50463 C 67.822172,155.61715 50.502331,192.18769 49.743523,198.14195 C 52.532726,198.83925 111.02019,130.19512 80.295208,193.81167 C 102.57324,174.95912 124.9556,141.04167 107.8027,183.94795 C 103.74903,194.08781 123.59559,194.09426 142.96938,172.96563 C 137.88975,176.22186 112.22868,191.62171 126.35499,159.60889 C 133.77483,142.79418 109.21923,159.41447 102.3683,165.83729 C 103.80096,159.33343 108.94433,147.78354 100.61675,150.98227 C 92.289176,154.181 83.310373,160.6892 67.937825,175.11509 C 76.765795,160.89643 77.224181,159.40756 79.886738,152.50463 z " style="fill:#2076c1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"/>
<path sodipodi:nodetypes="cscssccs" id="path2183" d="M 248.85492,188.50638 C 263.21933,186.53398 284.36437,164.67209 255.21207,163.30784 C 223.17817,161.81588 262.88238,150.47751 262.88238,150.47751 C 245.58932,149.36183 214.14946,168.68613 239.80172,165.74839 C 265.63062,162.76646 265.93049,186.17596 239.24388,186.14445 C 235.50916,186.14004 236.66387,182.41388 236.66387,182.41388 L 225.77752,187.22526 C 236.0826,190.18366 240.70876,189.62494 248.85492,188.50638 z " style="fill:#2076c1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"/>
<path sodipodi:nodetypes="cscccscssc" id="path6069" d="M 35.422878,148.66454 C 20.150885,157.04591 -6.2772909,190.95274 6.2647537,199.01662 C 17.984924,206.55208 68.941642,170.29445 77.667057,153.75538 C 4.3035383,211.52619 14.065561,174.90254 27.008448,162.02628 C 35.805465,151.30801 64.004057,143.68513 71.481066,128.52052 C 32.789119,149.29474 30.405114,131.50519 62.642197,110.82103 C 68.569623,107.02504 107.74937,89.042889 77.768775,114.28261 C 95.502651,106.02716 110.52675,93.267855 98.941531,90.767173 C 83.884151,87.517022 60.202847,105.92694 48.092626,115.80927 C 40.969928,121.62162 11.868522,145.38354 35.422878,148.66454 z " style="fill:#2076c1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"/>
<g id="g2188" style="fill:#2076c1;fill-opacity:1;stroke:none">
<path style="fill:#2076c1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" d="M 153.52386,181.54504 C 114.3973,212.57672 133.43947,164.59338 180.00502,149.95001 C 144.43247,174.12306 139.76476,184.61018 153.52386,181.54504 z " id="path2175" sodipodi:nodetypes="ccc"/>
<path style="fill:#2076c1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" d="M 196.30981,176.96638 C 156.1373,209.46239 150.29865,172.10195 184.30492,155.10468 C 167.14111,181.92747 183.59666,177.6607 196.30981,176.96638 z " id="path2177" sodipodi:nodetypes="ccc"/>
</g>
<path sodipodi:nodetypes="ccc" id="path2179" d="M 229.3687,178.97034 C 185.57023,211.04797 178.47643,161.27557 237.30661,150.27509 C 188.34589,179.18978 219.44475,183.56954 229.3687,178.97034 z " style="fill:#2076c1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"/>
</g>
<path sodipodi:nodetypes="cscsss" id="path2252" d="M 124.1858,189.83823 C 119.19632,187.34349 148.26509,119.15484 152.29057,142.10943 C 154.09525,152.40027 170.73124,123.57014 170.73124,123.57014 C 170.73124,123.57014 183.79749,99.804357 184.43848,101.87524 C 187.48343,111.71277 149.00775,175.41789 146.27516,159.36674 C 143.51342,143.14437 124.77748,190.13407 124.1858,189.83823 z " style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 127.36915,186.62713 C 122.37967,184.13239 151.44844,115.94374 155.47392,138.89833 C 157.2786,149.18917 173.91459,120.35904 173.91459,120.35904 C 173.91459,120.35904 186.98084,96.593259 187.62183,98.664137 C 190.66678,108.50167 152.1911,172.20679 149.45851,156.15564 C 146.69677,139.93327 127.96083,186.92297 127.36915,186.62713 z " id="path3158" sodipodi:nodetypes="cscsss"/>
<path sodipodi:nodetypes="cscsc" id="path2254" d="M 56.312166,214.04162 C 56.312166,214.04162 56.065636,199.44685 80.768246,168.4823 C 100.68005,143.52298 123.7636,107.53934 123.7636,107.53934 C 123.7636,107.53934 119.97892,126.52044 103.15975,148.19092 C 83.527796,173.4855 56.312166,214.04162 56.312166,214.04162 z " style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path style="fill:#c64e3b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.125;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 59.52326,215.22497 C 59.52326,215.22497 59.27673,200.6302 83.97934,169.66565 C 103.89115,144.70633 126.9747,108.72269 126.9747,108.72269 C 126.9747,108.72269 123.19002,127.70379 106.37085,149.37427 C 86.73889,174.66885 59.52326,215.22497 59.52326,215.22497 z " id="path4129" sodipodi:nodetypes="cscsc"/>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

124
config.el
View File

@@ -4,48 +4,106 @@
;;
;; Load appearance configuration
(load! "+ui")
;; Load custom keybindings
(load! "+keybindings")
;; Set projects directories
(setq projectile-project-search-path '("~/Projects"))
; Auto cleanup recentf
(setq projectile-project-search-path '(("~/Projects" . 2)
("~/Documents" . 5)
("~/Repos")
"~/.dotfiles"
"~/Notes"))
;; Auto cleanup recentf
(setq recentf-auto-cleanup 300)
; Save backup files to ~/.cache and autosave files to ~/.cache/emacs
;; Save backup files to ~/.cache and autosave files to ~/.cache/emacs
(setq backup-directory-alist `(("." . "~/.cache"))
auto-save-list-file-prefix
(concat "~/.cache/emacs"))
;; Set Magit repositories
(setq magit-repository-directories '(("~/Projects" . 3)
("~/.dotfiles" . 0)
("~/.doom.d" . 0)))
auto-save-list-file-prefix (concat "~/.cache"))
;; Load org configuration
(setq org-directory "~/Notes")
(after! org (load! "+org"))
;; Enter writeroom and disable completion and line numbers in Markdown
(add-hook 'markdown-mode-hook (lambda () (display-line-numbers-mode -1)))
;; Disable completion and line numbers in Markdown
(add-hook! 'markdown-mode-hook (display-line-numbers-mode -1))
(after! markdown
(set-company-backend! 'markdown-mode nil)
(add-hook 'markdown-mode-hook 'global-writeroom-mode))
(set-company-backend! 'markdown-mode nil))
;; Enable writeroom-mode for text modes
(setq writeroom-major-modes '(org-mode markdown-mode)
+zen-text-scale 1.5)
(add-hook! 'markdown-mode-hook 'global-writeroom-mode)
;; Reload file from disk without confirmation
(defun revert-buffer-no-confirm ()
(interactive)
(revert-buffer :ignore-auto :noconfirm))
;; Select target in Makefile compilation as default
(map! :leader :n "c c" #'makefile-executor-execute-project-target)
;; Set docsets for each language
(after! python
(set-docsets! 'python-mode "Python 3" "NumPy" "Pandas"))
(after! c++
(set-docsets! 'c++-mode "C++"))
(after! go
(set-docsets! 'go-mode "Go"))
;; Align columns in CSV mode
(add-hook 'csv-mode-hook 'csv-align-mode)
(add-hook! 'csv-mode-hook 'csv-align-mode)
(add-hook! 'csv-mode-hook 'csv-header-line)
;; Close compilation buffer if successful
(setq compilation-finish-functions
(lambda (buf str)
(if (null (string-match ".*exited abnormally.*" str))
(progn
(run-at-time
"0.5 sec" nil 'delete-windows-on
(get-buffer-create "*compilation*"))
(message "No Compilation Errors!")))))
;; Enable writeroom for text modes
(setq writeroom-major-modes '(markdown-mode org-mode))
(defun close-compilation-buffer-if-successful (buffer string)
"Bury a compilation buffer if succeeded without warnings "
(when (and (eq major-mode 'compilation-mode)
(string-match "finished" string)
(not
(with-current-buffer buffer
(search-forward "warning" nil t))))
(run-with-timer 1 nil
(lambda (buf)
(let ((window (get-buffer-window buf)))
(when (and (window-live-p window)
(eq buf (window-buffer window)))
(delete-window window))))
buffer)))
(add-hook 'compilation-finish-functions #'close-compilation-buffer-if-successful)
;; Map leader key for major mode to ,
(setq evil-snipe-override-evil-repeat-keys nil)
(setq doom-localleader-key ",")
;; Disable company mode in Nix
(setq-hook! 'nix-mode-hook company-idle-delay nil)
;; Trigger flycheck after save
(setq flycheck-check-syntax-automatically '(save))
;; Ignore development databases folders
(after! lsp-mode
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.mysql\\'")
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.pgdata\\'"))
;; Ignore empty files
(after! projectile
(add-to-list 'projectile-globally-ignored-files ".gitkeep")
(add-to-list 'projectile-globally-ignored-files ".envrc")
(add-to-list 'projectile-globally-ignored-files ".project")
(add-to-list 'projectile-globally-ignored-directories ".direnv")
(add-to-list 'projectile-globally-ignored-directories ".ipynb_checkpoints"))
;; Associate polymode to R markdown files
(add-to-list 'auto-mode-alist '("\\.[rR]md\\'" . poly-markdown+R-mode))
;; Set clangd as C/C++ LSP
(setq lsp-clients-clangd-args '("-j=3"
"--background-index"
"--clang-tidy"
"--completion-style=detailed"
"--header-insertion=never"
"--header-insertion-decorators=0"))
(after! lsp-clangd (set-lsp-priority! 'clangd 2))
;; Use relative line numbers (Usage: number <j/k>)
(setq display-line-numbers-type 'relative)
;; Set up RSS reader
(after! elfeed (load! "+rss"))
;; Set up the mail stack
(after! mu4e (load! "+mail"))
;; HACK Enable AOT native compilation
(setq native-comp-jit-compilation nil)
(after! (doom-packages straight)
(setq straight--native-comp-available t))
;; Use PlatformIO for Arduino development
(use-package! platformio-mode
:after cc-mode
:config
(add-hook! 'c++-mode-hook (platformio-conditionally-enable)))
;; Disable Pyright's type checking
(after! lsp-pyright
(setq lsp-pyright-use-library-code-for-types nil))
;; Set indentation level to 2
(setq tab-width 2)
;; Move buffer while maintaining cursor centered
(use-package! centered-cursor-mode
:config
(global-centered-cursor-mode))
;; Enable smooth scrolling
(pixel-scroll-precision-mode)
;; Restore previous session on startup
(add-hook 'window-setup-hook #'doom/quickload-session)

130
init.el
View File

@@ -11,35 +11,40 @@
(doom! :input
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
(company + tng) ; the ultimate code completion backend
;;(company +tng) ; the ultimate code completion backend
(corfu +orderless) ; complete with cap(f), cape and a flying feather!
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
(ivy ; a search engine for love and life
+fuzzy ; fuzzy search is a millenial thing
+icons) ; prettify the small thingss
;;(ivy ; a search engine for love and life
;;+fuzzy ; fuzzy search is a millenial thing
;;+icons) ; prettify the small thingss
(vertico +icons) ; The search engine of the future
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;;fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns
(ligatures
+extra
+iosevka) ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
nav-flash ; blink the current line after jumping
;;neotree ; a project drawer, like NERDTree for vim
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup ; tame sudden yet inevitable temporary windows
+all ; catch all popups that start with an asterix
+defaults) ; default popup rules
(pretty-code +iosevka); replace bits of code with pretty symbols
;;tabs ; an tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
;;tabs ; an tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
window-select ; visually switch windows
@@ -47,39 +52,39 @@
zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness
(evil +everywhere) ; come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
;;ibuffer ; interactive buffer management
;;ibuffer ; interactive buffer management
vc ; version-control and Emacs, sitting in a tree
:term
;;eshell ; a consistent, cross-platform shell (WIP)
shell ; a terminal REPL for Emacs
;;term ; terminals in Emacs
;;vterm ; another terminals in Emacs
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
;;spell ; tasing you for misspelling mispelling
;;(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
biblio
;;biblio ; Writes a PhD for you (citation needed)
debugger ; FIXME stepping through code, to help you add bugs
direnv
;;docker
@@ -87,9 +92,9 @@
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
(lookup ; helps you navigate your code and documentation
+docsets) ; ...or in Dash docsets locally
lsp
lookup ; navigate your code and its documentation
;;+docsets) ; ...or in Dash docsets locally
(lsp +booster) ; M-x vscode
;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs
make ; run make tasks from Emacs
@@ -99,81 +104,100 @@
;;rgb ; creating color strings
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
upload ; map local to remote projects via ssh/ftp
tree-sitter ; syntax and parsing, sitting in a tree...
;;upload ; map local to remote projects via ssh/ftp
:lang
;;agda ; types of types of types of types...
;;assembly ; assembly for fun or debugging
(cc +lsp) ; C/C++/Obj-C madness
;;beancount ; mind the GAAP
(cc +lsp
+tree-sitter) ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
(ess +lsp) ; emacs speaks statistics
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
(go +lsp) ; the hipster dialect
;;(haskell +dante) ; a language that's lazier than I am
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
(go +lsp
+tree-sitter) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST
;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ;
json ; At least it ain't XML
(java +meghanada) ; the poster child for carpal tunnel syndrome
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
;;idris ; a language you can depend on
(json +tree-sitter) ; At least it ain't XML
(java +lsp
+tree-sitter) ; the poster child for carpal tunnel syndrome
;;(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
;;latex ; writing papers in Emacs has never been so fun
;;lean
;;factor
(latex +lsp) ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; an accounting system in Emacs
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
nix ; I hereby declare "nix geht mehr!"
(nix +tree-sitter) ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org ; organize your plain life in plain text
+dragndrop ; drag & drop files/images into org buffers
;;+hugo ; use Emacs for hugo blogging
;;+ipython ; ipython/jupyter support for babel
;;+jupyter ; jupyter support for babel
+noter
+pandoc ; export-with-pandoc support
;;+pomodoro ; be fruitful with the tomato technique
+pomodoro ; be fruitful with the tomato technique
+present) ; using org-mode for presentations
;;perl ; write code no one else can comprehend
(php +lsp) ; perl's insecure younger brother
;;+pretty)
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +lsp) ; beautiful is better than ugly
(python +lsp ; beautiful is better than ugly
+pyright
+poetry
+tree-sitter)
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
rest ; Emacs as a REST client
;;rst ; ReST in peace
;;ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;scheme ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
(sh +tree-sitter) ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
swift ; who asked for emoji variables?
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
web ; the tubes
(web +tree-sitter) ; the tubes
yaml ; JSON, but readable
;;zig ; C, but simpler
:email
;;(mu4e +gmail)
(mu4e +org +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
rss ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
;;write ; emacs for writers (fiction, notes, papers, etc.)
:config
;;literate
@@ -183,9 +207,7 @@
;; 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.
'(org-agenda-files
(quote
("~/Sync/Notes/Personal.org" "~/Sync/Notes/Education.org" "~/Sync/Projects/Titank/Organization.org" "~/Sync/Notes/Uni.org" "~/Sync/Notes/Projects.org"))))
)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.

View File

@@ -5,4 +5,29 @@
;; (package! some-package)
;; (package! another-package :recipe (:host github :repo "username/repo"))
;; (package! builtin-package :disable t)
;; Better org agenda
(package! org-super-agenda)
;; Save recipes to org file
(package! org-chef)
;; Miniflux integration for elfeed
(package! elfeed-protocol)
;; Prettier LaTeX source blocks
(package! engrave-faces)
;; Prettier org mode
(package! org-modern)
;; Tangle org files on save
(package! org-auto-tangle)
;; Enable LaTeX previews automatically
(package! org-fragtog)
;; Arduino development
(package! platformio-mode)
;; Light theme
(package! os1-theme :recipe (:host github :repo "sashimacs/os1-theme"))
;; Move buffer while maintaining cursor centered
(package! centered-cursor-mode)
;; Use the fork of pdf-tools with smooth scrolling
(unpin! pdf-tools)
(package! pdf-tools :recipe (:host github :repo "aikrahguzar/pdf-tools" :branch "child-frame-preview"))
(package! image-roll :recipe (:host github :repo "dalanicolai/image-roll.el"))
;; Declarative org capture templates
(package! doct :recipe (:host github :repo "progfolio/doct"))

View File

@@ -0,0 +1,11 @@
# -*- mode: snippet -*-
# name: article latex metadata
# key: art
# --
#+TITLE: $0
#+SUBTITLE:
#+AUTHOR: Amin Kasrou Aouam
#+OPTIONS: toc:nil
#+LATEX_CLASS: org-plain-latex
#+LATEX_CLASS_OPTIONS: [a4paper]
#+SETUPFILE: ~/.pandoc/templates/emacs-latex.org

View File

@@ -5,13 +5,13 @@
#+TITLE: $0
#+SUBTITLE:
#+AUTHOR: Amin Kasrou Aouam
#+DATE: `(format-time-string "%Y-%m-%d")`
#+DATE: `(format-time-string "%d-%m-%Y")`
#+PANDOC_OPTIONS: template:~/.pandoc/templates/eisvogel.latex
#+PANDOC_OPTIONS: listings:t
#+PANDOC_OPTIONS: toc:t
#+PANDOC_METADATA: lang=es
#+PANDOC_METADATA: titlepage:t
#+PANDOC_METADATA: listings-no-page-break:t
#+PANDOC_METADATA: toc-own-page:t
#+PANDOC_METADATA: table-use-row-colors:t
#+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGR.png
#+PANDOC_METADATA: colorlinks:t
#+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGent.png

9
snippets/org-mode/image Normal file
View File

@@ -0,0 +1,9 @@
# -*- mode: snippet -*-
# name: img
# uuid: img
# key: trigger-key
# condition: t
# --
#+CAPTION: $1
#+LABEL: $2
#+ATTR_HTML: :width 50%

View File

@@ -0,0 +1,10 @@
# -*- mode: snippet -*-
# name: metropolis presentation
# key: met
# --
#+TITLE: $0
#+AUTHOR: Amin Kasrou Aouam
#+SUBTITLE:
#+PANDOC_OPTIONS: pdf-engine:xelatex
#+PANDOC_METADATA: theme:metropolis
#+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGent.png

View File

@@ -0,0 +1,9 @@
# -*- mode: snippet -*-
# name: reveal.js presentation
# key: pres
# --
#+TITLE: $0
#+SUBTITLE:
#+REVEAL_TITLE_SLIDE: %t <br>%s</br>
#+REVEAL_THEME: moon
#+OPTIONS: toc:nil ^:nil num:nil

View File

@@ -0,0 +1,9 @@
# -*- mode: snippet -*-
# name: tufte latex metadata
# key: tufte
# --
#+TITLE: $0
#+AUTHOR: Amin Kasrou Aouam
#+OPTIONS: toc:nil
#+LATEX_CLASS: tufte-handout
#+LATEX_CLASS_OPTIONS: [a4paper]

View File

@@ -0,0 +1,8 @@
# -*- mode: snippet -*-
# name: email signature
# key: sign
# --
Kind regards,
Amin Kasrou Aouam

View File

@@ -0,0 +1,5 @@
# -*- mode: snippet -*-
# name: formal greeting
# key: dear
# --
Dear Madam/Sir,

View File

@@ -0,0 +1,8 @@
# -*- mode: snippet -*-
# name: email signature
# key: frsign
# --
Cordialement,
Amin Kasrou Aouam

View File

@@ -0,0 +1,12 @@
# -*- mode: snippet -*-
# name: work administration template
# key: work
# condition: t
# --
Dear colleague,
You will find attached to this mail my $1 for the month of `(format-time-string "%B %Y")`.
Kind regards,
Amin Kasrou Aouam