Last active
October 5, 2020 14:30
-
-
Save stammw/803e23b4e13c82373127ebe7fa161228 to your computer and use it in GitHub Desktop.
Doom emacs conf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; .doom.d/config.el -*- lexical-binding: t; -*- | |
(setq user-full-name "Jean-Christophe BEGUE") | |
(setq user-mail-address "111111111111111111") | |
;; Start maximized | |
(add-to-list 'default-frame-alist '(fullscreen . maximized)) | |
;; Hide title bar and other decorations | |
(set-frame-parameter nil 'undecorated t) | |
;; Apparence | |
(load-theme 'doom-tomorrow-night t) | |
(setq display-line-numbers-type nil) | |
(setq doom-font "SauceCodePro Nerd Font Mono:pixelsize=15:foundry=ADBO:weight=semi-bold:slant=normal:width=normal:spacing=100:scalable=true") | |
(after! projectile | |
(dolist (item '(".cargo" ".mypy_cache")) | |
(add-to-list 'projectile-globally-ignored-directories item))) | |
(after! forge | |
(add-to-list 'forge-alist '("1111111111111" "11111111111111111111" "1111111111111" forge-gitlab-repository))) | |
;; (add-hook! 'prog-mode #'rainbow-delimiters-mode) | |
;; Always compile from project root, and save all files | |
(defun save-all-and-compile () | |
"Automate compile workflow." | |
(interactive) | |
(save-some-buffers 1) | |
(if (get-buffer-process "*compilation*") | |
(kill-compilation)) | |
(projectile-compile-project 'projectile-project-compilation-cmd)) | |
(defun save-all-and-recompile () | |
"Automate compile workflow." | |
(interactive) | |
(save-some-buffers 1) | |
(if (get-buffer-process "*compilation*") | |
(kill-compilation)) | |
(recompile)) | |
(defun rustic-save-all-and-compile () | |
"Automate compile workflow." | |
(interactive) | |
(save-some-buffers 1) | |
(if (get-buffer-process "*compilation*") | |
(kill-compilation)) | |
(rustic-compile)) | |
(defun rustic-save-all-and-recompile () | |
"Automate compile workflow." | |
(interactive) | |
(save-some-buffers 1) | |
(if (get-buffer-process "*compilation*") | |
(kill-compilation)) | |
(rustic-recompile)) | |
(after! evil-escape | |
(evil-escape-mode 1) | |
(setq evil-escape-key-sequence "jk") | |
(setq evil-escape-unordered-key-sequence t) | |
(setq evil-escape-excluded-major-modes (list 'magit-status-mode 'magit-refs-mode 'magit-log-mode))) | |
(add-hook! org-mode (org-bullets-mode 1)) | |
(after! org-journal | |
(setq org-journal-file-type 'weekly) | |
(setq org-journal-dir "/home/AAAAA/Documents/Journal/weeks/") | |
(setq org-journal-file-format "%Y%m-%W.org")) | |
(after! lsp-mode | |
(setq lsp-signature-auto-activate nil)) | |
;; Lang C / C++ | |
(setq-default ff-search-directories '("." "../src" "../include" "../include/*")) | |
(add-hook 'cc-mode-hook #'+format|disable-on-save) | |
;; Documentation | |
(add-hook! adoc-mode | |
(ispell-change-dictionary "fr") | |
(add-to-list 'auto-mode-alist '("\\.adoc" . adoc-mode)) | |
(flyspell-mode t)) | |
(setq rustic-lsp-server 'rust-analyzer) | |
(add-hook! rustic-mode | |
(rainbow-delimiters-mode 1)) | |
(map! | |
;; Window Movements | |
"M-h" #'evil-window-left | |
"M-j" #'evil-window-down | |
"M-k" #'evil-window-up | |
"M-l" #'evil-window-right | |
:nv "C-h" #'beginning-of-line-text | |
:nv "C-j" #'(lambda () (interactive) (next-line 5)) | |
:nv "C-k" #'(lambda () (interactive) (previous-line 5)) | |
:nv "C-l" #'end-of-line | |
:m "<f6>" #'save-all-and-compile | |
:m "<f5>" #'save-all-and-recompile | |
:i "<f5>" #'(lambda () (interactive) (evil-escape) (save-all-and-recompile)) | |
:i "<f5>" #'(lambda () (interactive) (evil-escape) (save-all-and-compile)) | |
(:map compilation-mode-map | |
:nv "h" #'evil-backward-char) | |
(:after evil-org | |
:map evil-org-mode-map | |
:n "M-l" #'evil-window-right | |
:n "M-h" #'evil-window-left | |
:v "M-h" #'outline-demote | |
:v "M-h" #'outline-promote) | |
(:map c-mode-map | |
:m "gh" #'ff-find-other-file) | |
(:after rustic | |
:map rustic-mode-map | |
:m "<f6>" #'rustic-save-all-and-compile | |
:m "<f5>" #'rustic-save-all-and-recompile | |
:i "<f5>" #'(lambda () (interactive) (evil-escape) (rustic-save-all-and-recompile)) | |
:i "<f5>" #'(lambda () (interactive) (evil-escape) (rustic-save-all-and-compile))) | |
:leader | |
:desc "Find file in project" "SPC" #'helm-projectile | |
:desc "Find file in project" "k" #'+popup/raise | |
(:prefix "TAB" | |
:desc "Next workspace" "l" #'+workspace/switch-right | |
:desc "Previous workspace" "h" #'+workspace/switch-left) | |
(:prefix "t" | |
:desc "Treemacs" "t" #'treemacs-select-window) | |
(:prefix "o" | |
:desc "Toogle treemacs" "p" #'+treemacs/toggle) | |
(:prefix "w" | |
:desc "Ace window" "w" #'ace-window | |
:desc "Ace swap window" "S" #'ace-swap-window) | |
(:prefix "c" | |
:desc "Format buffer" "f" #'lsp-format-buffer | |
:desc "Toggle line comment" "l" #'evilnc-comment-or-uncomment-lines | |
:desc "Comment block" "b" #'comment-region | |
:desc "Copy and comment lines" "y" #'evilnc-copy-and-comment-lines)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; init.el -*- lexical-binding: t; -*- | |
;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom install' | |
;; will do this for you). The `doom!' block below controls what modules are | |
;; enabled and in what order they will be loaded. Remember to run 'doom refresh' | |
;; after modifying it. | |
;; | |
;; More information about these modules (and what flags they support) can be | |
;; found in modules/README.org. | |
(doom! :input | |
;;chinese | |
;;japanese | |
:completion | |
company ; the ultimate code completion backend | |
(helm +fuzzy) ; the *other* search engine for love and life | |
;;ido ; the other *other* search engine... | |
;;ivy ; a search engine for love and life | |
: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 | |
modeline ; snazzy, Atom-inspired modeline, plus API | |
nav-flash ; blink the current line after jumping | |
;;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 | |
;; +default) ; default popup rules | |
;;(pretty-code +fira) ; 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 | |
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 | |
: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 | |
;;lispy ; vim for lisp, for people who dont 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 | |
;;word-wrap ; soft wrapping with language-aware indent | |
:emacs | |
dired ; making dired pretty [functional] | |
electric ; smarter, keyword-based electric-indent | |
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 | |
:tools | |
ansible | |
;;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 ; run code, run (also, repls) | |
flycheck ; tasing you for every semicolon you forget | |
flyspell ; tasing you for misspelling mispelling | |
;;gist ; interacting with github gists | |
(lookup ; helps you navigate your code and documentation | |
+docsets) ; ...or in Dash docsets locally | |
lsp | |
;;macos ; MacOS-specific commands | |
magit ; a git porcelain for Emacs | |
make ; run make tasks from Emacs | |
;;pass ; password manager for nerds | |
;;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 | |
;;wakatime | |
:lang | |
;;agda ; types of types of types of types... | |
;;assembly ; assembly for fun or debugging | |
(cc | |
+lsp) ; C/C++/Obj-C madness | |
;;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 | |
;;erlang ; an elegant language for a more civilized age | |
;;elixir ; erlang done right | |
;;elm ; care for a cup of TEA? | |
emacs-lisp ; drown in parentheses | |
;;ess ; emacs speaks statistics | |
;;fsharp ; ML stands for Microsoft's Language | |
;;go ; the hipster dialect | |
;;(haskell +intero) ; a language that's lazier than I am | |
;;hy ; readability of scheme w/ speed of python | |
;;idris ; | |
(java +lsp) ; the poster child for carpal tunnel syndrome | |
;;javascript ; 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 | |
;;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!" | |
;;ocaml ; an objective camel | |
(org ; organize your plain life in plain text | |
+dragndrop ; drag & drop files/images into org buffers | |
+ipython ; ipython/jupyter support for babel | |
+pandoc ; export-with-pandoc support | |
+present ; using org-mode for presentations | |
+journal | |
+pomodoro) | |
;;perl ; write code no one else can comprehend | |
;;php ; perl's insecure younger brother | |
;;plantuml ; diagrams for confusing people more | |
;;purescript ; javascript, but functional | |
(python | |
+pyenv | |
+lsp) ; beautiful is better than ugly | |
;;qt ; the 'cutest' gui framework ever | |
;;racket ; a DSL for DSLs | |
;;rest ; Emacs as a REST client | |
;;ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} | |
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() | |
;;scala ; java, but good | |
;;scheme ; a fully conniving family of lisps | |
(sh +lsp) ; she sells {ba,z,fi}sh shells on the C xor | |
;;solidity ; do you need a blockchain? No. | |
;;swift ; who asked for emoji variables? | |
;;terra ; Earth and Moon in alignment for performance. | |
web ; the tubes | |
;;vala ; GObjective-C | |
;;(mu4e +gmail) ; WIP | |
;;notmuch ; WIP | |
;;(wanderlust +gmail) ; WIP | |
;; Applications are complex and opinionated modules that transform Emacs | |
;; toward a specific purpose. They may have additional dependencies and | |
;; should be loaded late. | |
:app | |
;;calendar | |
;;irc ; how neckbeards socialize | |
;;(rss +org) ; emacs as an RSS reader | |
;;twitter ; twitter client https://twitter.com/vnought | |
;;(write ; emacs for writers (fiction, notes, papers, etc.) | |
;; +wordnut ; wordnet (wn) search | |
;; +langtool) ; a proofreader (grammar/style check) for Emacs | |
:config | |
;; For literate config users. This will tangle+compile a config.org | |
;; literate config in your `doom-private-dir' whenever it changes. | |
;;literate | |
;; The default module sets reasonable defaults for Emacs. It also | |
;; provides a Spacemacs-inspired keybinding scheme and a smartparens | |
;; config. Use it as a reference for your own modules. | |
(default +bindings +smartparens)) | |
(custom-set-variables | |
;; custom-set-variables was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
'(custom-safe-themes | |
(quote | |
("0fe9f7a04e7a00ad99ecacc875c8ccb4153204e29d3e57e9669691e6ed8340ce" "70cc30fd9d27a8d0d3ae82974ac2c409fd2cd5746470e2246778c6bec2d4857c" "2d1fe7c9007a5b76cea4395b0fc664d0c1cfd34bb4f1860300347cdad67fb2f9" default))) | |
'(send-mail-function (quote smtpmail-send-it))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; -*- no-byte-compile: t; -*- | |
;;; .doom.d/packages.el | |
;;; Examples: | |
(package! evil-snipe :disable t) | |
(package! evil-escape) | |
(package! adoc-mode) | |
(package! yasnippet-snippets) | |
(package! python-black) | |
(package! groovy-mode) | |
(package! rg) | |
(package! jinja2-mode) | |
(package! string-inflection) | |
(package! jenkinsfile-mode :recipe | |
(:host github | |
:repo "john2x/jenkinsfile-mode" | |
:branch "master")) | |
(package! org-bullets) | |
(package! meson-mode) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment