Compare commits

...

104 Commits

Author SHA1 Message Date
be91582932 Set up a minimal config for work 2023-10-05 16:44:28 +02: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
10 changed files with 215 additions and 192 deletions

6
+keybindings.el Normal file
View File

@@ -0,0 +1,6 @@
;;; +keybindings.el -*- lexical-binding: t; -*-
;; Custom keybindings
;;
;; Keybindings for next/previous buffer
(map! :n "C-c j" #'previous-buffer)
(map! :n "C-c k" #'next-buffer)

114
+org.el
View File

@@ -1,36 +1,14 @@
;;; ~/.doom.d/+org.el -*- lexical-binding: t; -*-
;; Org mode configuration
;;
(setq org-ellipsis ""
org-superstar-headline-bullets-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 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 "Overdue"
:deadline past)
(:name "Today"
:scheduled today
:deadline today)
(:name "Important"
:priority "A")
(:name "Assignments"
:tag "labs"
:order 10)
(:name "Exams"
:tag "exams"
:order 10)))
:config
(org-super-agenda-mode))
(add-hook! 'org-mode-hook (display-line-numbers-mode -1))
;; Add timestamp to DONE task
(setq org-log-done 'time)
;; Print babel results to the buffer and export them
@@ -38,8 +16,8 @@
(: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)
(setq writeroom-major-modes '(org-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
@@ -59,20 +37,20 @@
;; Add org-plain-latex
(after! ox-latex
(add-to-list 'org-latex-classes
'("org-plain-latex"
"\\documentclass{article}
'("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}"))))
;; Enable listings for LaTeX export
(setq org-latex-listings 't)
;; Set up bibliography management
(setq citar-bibliography '("~/Documents/Education/Bibliography/references.bib"))
("\\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)
@@ -83,32 +61,40 @@
(setq org-pomodoro-length '45
org-pomodoro-short-break-length '15
org-pomodoro-long-break-length '30
org-pomodoro-audio-player "pw-play")
;; Define capture templates
(setq org-capture-templates
'(("c" "Cookbook" entry (file "~/Notes/Recipes.org")
"%(org-chef-get-recipe-from-url)"
:empty-lines 1)))
;; 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 ~/.cache
org-pomodoro-time-format "%.2m min"
org-pomodoro-keep-killed-pomodoro-time t)
;; Save org-download images to an assets directory
(after! org-download
(setq org-download-image-dir "~/.cache/org-download"
org-attach-id-dir "~/.cache/org-attach"
(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 "$" "$")))
;; Show raw latex when the cursor on the expression
(add-hook! 'org-mode-hook 'org-fragtog-mode)
;; HACK Fix search folded sections
(setq org-fold-core-style 'overlays)
(evil-select-search-module 'evil-search-module 'evil-search)

55
+ui.el
View File

@@ -2,38 +2,41 @@
;; Appearance settings
;; Set Font and theme
(setq doom-font (font-spec :family "Iosevka Medium" :size 26)
doom-theme 'doom-nord)
;; 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 and fit to page by default
(after! pdf-tools
(setq pdf-view-midnight-colors '("#ECEFF4" . "#2E3440"))
(setq-default pdf-view-display-size 'fit-width)
(add-hook 'pdf-tools-enabled-hook 'pdf-view-midnight-minor-mode))
doom-theme 'doom-one)
;; Customize modeline
(setq doom-modeline-major-mode-icon t
doom-modeline-persp-name t
doom-modeline-buffer-encoding nil)
;; Hide direnv environment variables popup
(setq direnv-always-show-summary nil)
(setq doom-modeline-buffer-encoding 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-show-code-actions nil
lsp-modeline-code-actions-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))
;; Disable lsp header line
(after! lsp-mode
(setq lsp-headerline-breadcrumb-enable nil))
;; Shrink terminal buffer
(set-popup-rule! "^\\*vterm" :size 0.1 :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)))
;; 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)

View File

@@ -4,73 +4,58 @@
;;
;; Load appearance configuration
(load! "+ui")
;; Set projects directories
(setq projectile-project-search-path '(("~/Projects" . 2)
("~/Documents/Work" . 1)
("~/Documents/Papers" . 0)
("~/Documents/Typesetting" . 1)
("~/Documents/Paperwork" . 1)
("~/Documents/Typesetting" . 1)
("~/Documents/Uni" . 3)
("~/Repos" . 1)
"~/.dotfiles"))
; Auto cleanup recentf
;; Load custom keybindings
(load! "+keybindings")
;; 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"))
;; Load org configuration
(after! org (load! "+org"))
;; Disable completion and line numbers in Markdown
(add-hook 'markdown-mode-hook (lambda () (display-line-numbers-mode -1)))
(add-hook! 'markdown-mode-hook (display-line-numbers-mode -1))
(after! markdown
(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)
;; 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!")))))
(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 ",")
;; Show matching parenthesis on the minibuffer
(after! smartparens (show-smartparens-global-mode t))
;; 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-directories ".direnv"))
;; Associate polymode to R markdown files
(add-to-list 'auto-mode-alist '("\\.[rR]md\\'" . poly-markdown+R-mode))
;; Keybindings for R markdown polymode
(map! :map poly-markdown+R-mode-map
:n "RET" #'polymode-eval-chunk
:desc "Evaluate code block")
;; 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 indentation level to 2
(setq tab-width 2)
;; Move buffer while maintaining cursor centered
(use-package! centered-cursor-mode
:config
(global-centered-cursor-mode))
;; Restore previous session on startup
(add-hook 'window-setup-hook #'doom/quickload-session)

105
init.el
View File

@@ -11,10 +11,10 @@
(doom! :input
;;chinese
;;japanese
;layout ; auie,ctsrnm is the superior home row
;layout ; auie,ctsrnm is the superior home row
:completion
(company + tng) ; the ultimate code completion backend
(company +tng) ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;;(ivy ; a search engine for love and life
@@ -33,47 +33,48 @@
(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
;;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
;;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
workspaces ; tab emulation, persistence & separate workspaces
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
vc ; version-control and Emacs, sitting in a tree
;;vc ; version-control and Emacs, sitting in a tree
:term
;;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
;;vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
@@ -82,101 +83,105 @@
:tools
;;ansible
biblio ; Writes a PhD for you (citation needed)
debugger ; FIXME stepping through code, to help you add bugs
direnv
;; biblio ; Writes a PhD for you (citation needed)
;; debugger ; FIXME stepping through code, to help you add bugs
;; direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
lookup ; navigate your code and its documentation
;;+docsets) ; ...or in Dash docsets locally
lsp ; M-x vscode
;;lsp ; M-x vscode
;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs
make ; run make tasks from Emacs
;;magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;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
;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
;;(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
;;(dart
;;+flutter
;;+lsp) ; paint ui and not much else
;;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 +lsp) ; 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
;;fstar ; (dependent) types and (monadic) effects and Z3
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;gdscript ; the language you waited for
(go +lsp) ; the hipster dialect
;;(haskell +lsp) ; a language that's lazier than I am
;;(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 ; a language you can depend on
json ; At least it ain't XML
(java +lsp) ; the poster child for carpal tunnel syndrome
;;(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 +lsp) ; writing papers in Emacs has never been so fun
;;lean
;;(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
;;+jupyter ; jupyter support for babel
+noter
+pandoc ; export-with-pandoc support
+pomodoro ; be fruitful with the tomato technique
+present ; using org-mode for presentations
+pretty)
;;perl ; write code no one else can comprehend
+pomodoro ; be fruitful with the tomato technique
+present) ; using org-mode for presentations
;;+pretty)
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +lsp ; beautiful is better than ugly
+pyright
+poetry)
;;(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
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(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
yaml ; JSON, but readable
;;(web +tree-sitter); the tubes
;;yaml ; JSON, but readable
;;zig ; C, but simpler
@@ -190,7 +195,7 @@
;;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
:config

View File

@@ -5,5 +5,13 @@
;; (package! some-package)
;; (package! another-package :recipe (:host github :repo "username/repo"))
;; (package! builtin-package :disable t)
(package! org-super-agenda)
(package! org-chef)
;; Prettier LaTeX source blocks
(package! engrave-faces)
;; Prettier org mode
(package! org-modern)
;; Enable LaTeX previews automatically
(package! org-fragtog)
;; Light theme
(package! os1-theme :recipe (:host github :repo "sashimacs/os1-theme"))
;; Move buffer while maintaining cursor centered
(package! centered-cursor-mode)

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,8 @@
# -*- mode: snippet -*-
# name: email signature
# key: sign
# --
Best 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