From 0510eaa0f5761fa99f0f9c418149e6234398e9a2 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Wed, 21 Apr 2021 22:00:50 +0200 Subject: [PATCH] [Emacs] Switching to Chemacs2, added vanilla and Doom Chemacs2 is a utility for Emacs to switch between various profiles and configurations of Emacs without a hassle. It thus helps me run my fully configured Spacemacss alongside my new attempt at configuring some vanilla Emacs after years of using Spacemacs. I also added Doom-Emacs for reference. --- .config/chemacs/profile | 1 + .config/chemacs/profiles.el | 3 + .emacs.d | 2 +- .emacs.doom | 1 + .../private/conlanging | 0 .../private/eshell-alias | 0 .emacs.vanilla/early-init.el | 7 + .emacs.vanilla/init.el | 457 ++++++++++++++++++ .gitmodules | 6 + .spacemacs | 8 +- org/config/emacs.org | 72 +-- 11 files changed, 517 insertions(+), 40 deletions(-) create mode 100644 .config/chemacs/profile create mode 100644 .config/chemacs/profiles.el mode change 120000 => 160000 .emacs.d create mode 160000 .emacs.doom rename {.config/emacs => .emacs.spacemacs}/private/conlanging (100%) rename {.config/emacs => .emacs.spacemacs}/private/eshell-alias (100%) create mode 100644 .emacs.vanilla/early-init.el create mode 100644 .emacs.vanilla/init.el diff --git a/.config/chemacs/profile b/.config/chemacs/profile new file mode 100644 index 0000000..ebf7263 --- /dev/null +++ b/.config/chemacs/profile @@ -0,0 +1 @@ +spacemacs diff --git a/.config/chemacs/profiles.el b/.config/chemacs/profiles.el new file mode 100644 index 0000000..ae063d3 --- /dev/null +++ b/.config/chemacs/profiles.el @@ -0,0 +1,3 @@ +(("spacemacs" . ((user-emacs-directory . "~/.emacs.spacemacs"))) + ("vanilla" . ((user-emacs-directory . "~/.emacs.vanilla"))) + ("doom" . ((user-emacs-directory . "~/.emacs.doom")))) diff --git a/.emacs.d b/.emacs.d deleted file mode 120000 index d45c316..0000000 --- a/.emacs.d +++ /dev/null @@ -1 +0,0 @@ -.config/emacs/ \ No newline at end of file diff --git a/.emacs.d b/.emacs.d new file mode 160000 index 0000000..30a20db --- /dev/null +++ b/.emacs.d @@ -0,0 +1 @@ +Subproject commit 30a20dbc2799e4ab2f8c509fdadcd90aa9845b5c diff --git a/.emacs.doom b/.emacs.doom new file mode 160000 index 0000000..a9072e9 --- /dev/null +++ b/.emacs.doom @@ -0,0 +1 @@ +Subproject commit a9072e9673527d831ec276fd2bd7f43d03ea38a1 diff --git a/.config/emacs/private/conlanging b/.emacs.spacemacs/private/conlanging similarity index 100% rename from .config/emacs/private/conlanging rename to .emacs.spacemacs/private/conlanging diff --git a/.config/emacs/private/eshell-alias b/.emacs.spacemacs/private/eshell-alias similarity index 100% rename from .config/emacs/private/eshell-alias rename to .emacs.spacemacs/private/eshell-alias diff --git a/.emacs.vanilla/early-init.el b/.emacs.vanilla/early-init.el new file mode 100644 index 0000000..e963372 --- /dev/null +++ b/.emacs.vanilla/early-init.el @@ -0,0 +1,7 @@ +(setq package-enable-at-startup nil) +(setq inhibit-startup-message t) +(scroll-bar-mode -1) ; disable scrollbar +(tool-bar-mode -1) ; disable toolbar +(tooltip-mode -1) ; disable tooltips +(set-fringe-mode 10) ; give some breathing room +(menu-bar-mode -1) ; disable menubar diff --git a/.emacs.vanilla/init.el b/.emacs.vanilla/init.el new file mode 100644 index 0000000..854ac1a --- /dev/null +++ b/.emacs.vanilla/init.el @@ -0,0 +1,457 @@ +;;; init.el --- My vanilla Emacs configuration -*- lexical-binding: t -*- + +;; Author: Lucien Cartier-Tilet +;; Maintainer: Lucien Cartier-Tilet +;; Version: 0.1.0 +;; Package-Requires: ((emacs "27.1")) +;; Homepage: https://labs.phundrak.com/emacs + + +;; This file is not part of GNU Emacs + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + + +;;; Commentary: + +;; commentary + +;;; Code: + +(defvar phundrak/default-font-size 90 + "Default font size.") + +(setq-default custom-file (expand-file-name ".custom.el" user-emacs-directory)) +(when (file-exists-p custom-file) + (load custom-file)) + + +(setq visible-bell t) ; set up visible bell + +(setq display-time-format "%Y-%m-%d %H:%M") +(display-time-mode 1) ; display time in modeline + +;; Display battery in modeline when using a laptop +(unless (equal "Battery status not available" + (battery)) + (display-battery-mode 1)) + +(set-face-attribute 'default nil :font "Cascadia Code" :height phundrak/default-font-size) + + +(setq frame-title-format + '("" + "%b" + (:eval + (let ((project-name (projectile-project-name))) + (unless (string= "-" project-name) + (format (if (buffer-modified-p) " ◉ %s" "  ●  %s") project-name)))))) + +;; Make ESC quit prompts +(global-set-key (kbd "") 'keyboard-escabe-quit) + +;; Answer with y or n, not yes or not +(defalias 'yes-or-no-p 'y-or-n-p) + +(column-number-mode) +(global-display-line-numbers-mode t) +;; Disable line numbers for some modes +(dolist (mode '(org-mode-hook + term-mode-hook + shell-mode-hook + eshell-mode-hook)) + (add-hook mode (lambda () (display-line-numbers-mode 0)))) + +(setq x-stretch-cursor t ; stretch cursor to the glyph’s width + delete-by-moving-to-trash t ; delete files to trash + window-combination-resize t ; take new window space from all other windows + undo-limit 100000000 ; raise undo limit to 100Mb + evil-want-fine-undo t ; more granular undo with evil + auto-save-default t + truncate-string-ellipsis "…") + +(global-subword-mode 1) + +(add-to-list 'default-frame-alist '(height . 24)) +(add-to-list 'default-frame-alist '(width . 80)) + +(setq-default major-mode 'org-mode) + +(defun modeline-contitional-buffer-encoding () + "Hide \"LF UTF-8\" in modeline. + +It is expected of files to be encoded with LF UTF-8, so only show +the encoding in the modeline if the encoding is worth notifying +the user." + (setq-local doom-modeline-buffer-encoding + (unless (and (memq (plist-get (coding-system-plist buffer-file-coding-system) :category) + '(coding-category-undecided coding-category-utf-8)) + (not (memq (coding-system-eol-type buffer-file-coding-system) '(1 2)))) + t))) + +(add-hook 'after-change-major-mode-hook #'modeline-contitional-buffer-encoding) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Packages ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; Initialize package sources +(require 'package) +(setq package-archives '(("melpa" . "https://melpa.org/packages/") + ("org" . "https://orgmode.org/elpa/") + ("elpa" . "https://elpa.gnu.org/packages/"))) + +(defvar bootstrap-version) +(let ((bootstrap-file + (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) + (bootstrap-version 5)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage)) + +(package-initialize) +(unless package-archive-contents + (package-refresh-contents)) + +;; Initialize use-package on non-Linux platforms +(unless (package-installed-p 'use-package) + (package-install 'use-package)) + +(require 'use-package) +(setq use-package-always-ensure t) + +(use-package command-log-mode + :defer t) + +(use-package ivy + :defer t + :diminish + :bind (("C-s" . swiper) + :map ivy-minibuffer-map + ("TAB" . ivy-alt-done) + ("C-l" . ivy-alt-done) + ("C-t" . ivy-next-line) + ("C-s" . ivy-previous-line) + :map ivy-switch-buffer-map + ("C-t" . ivy-next-line) + ("C-s" . ivy-previous-line) + ("C-l" . ivy-done) + ("C-d" . ivy-switch-buffer-kill) + :map ivy-reverse-i-search-map + ("C-t" . ivy-next-line) + ("C-s" . ivy-previous-line) + ("C-d" . ivy-reverse-i-search-kill)) + :config + (ivy-mode 1)) + +;; NOTE: Thi first time you load your configuration on a new machine, +;; you’ll need to run the following command interactively o that mode +;; line icons display correctly: +;; +;; M-x all-the-icons-install-fonts + +(use-package all-the-icons + :defer t) + +(use-package doom-modeline + :defer t + :init (doom-modeline-mode 1) + :custom ((doom-modeline-height 15))) + +(use-package doom-themes + :defer t + :init (load-theme 'doom-nord t)) + +(use-package rainbow-delimiters + :defer t + :hook (prog-mode . rainbow-delimiters-mode)) + +(use-package which-key + :defer t + :init (which-key-mode) + :diminish which-key-mode + :config + (setq which-key-idle-delay 0.3)) + +(use-package ivy-rich + :defer t + :init + (ivy-rich-mode 1)) + +(use-package counsel + :defer t + :bind (("M-x" . counsel-M-x) + ("C-x b" . counsel-ibuffer) + ("C-x C-f" . counsel-find-file) + :map minibuffer-local-map + ("C-r" . 'counsel-minibuffer-history))) + +(use-package helpful + :defer t + :custom + (counsel-describe-function-function #'helpfull-callable) + (counsel-describe-variable-function #'helpfull-variable) + :bind + ([remap describe-function] . counsel-describe-function) + ([remap describe-command] . helpful-command) + ([remap describe-variable] . counsel-describe-variable) + ([remap describe-key] . helpful-key)) + +(use-package bind-map + :ensure t + :defer ) + +(use-package spaceleader + :defer t + :after bind-map + :straight (spaceleader :type git + :host github + :repo "mohkale/spaceleader") + :config + (setq leader-key "SPC" + leader-major-mode-prefix ",")) + +(use-package evil + :init + (setq evil-want-integration t) + (setq evil-want-keybinding nil) + (setq evil-want-C-u-scroll t) + (setq evil-want-C-i-jump nil) + :config + (evil-mode 1) + (define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state) + (define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join) + + ;; Use visual line motions even outside of visual-line-mode buffers + (evil-global-set-key 'motion "t" 'evil-next-visual-line) + (evil-global-set-key 'motion "s" 'evil-previous-visual-line) + (define-key evil-normal-state-map "c" nil) + (define-key evil-normal-state-map "C" nil) + (define-key evil-normal-state-map "s" nil) + (define-key evil-normal-state-map "S" nil) + (define-key evil-normal-state-map "r" nil) + (define-key evil-normal-state-map "R" nil) + (define-key evil-normal-state-map "j" nil) + (define-key evil-normal-state-map "J" nil) + ;je redéfinis certaines fonctions pour l’état normal + (define-key evil-normal-state-map "h" 'evil-change) + (define-key evil-normal-state-map "H" 'evil-change-line) + (define-key evil-normal-state-map "T" 'evil-join) + (define-key evil-normal-state-map "l" 'evil-replace) + (define-key evil-normal-state-map "L" 'evil-replace-state) + (define-key evil-normal-state-map "k" 'evil-substitute) + (define-key evil-normal-state-map "K" 'evil-change-whole-line) + ;même chose mais cette fois pour l’état motion + (define-key evil-motion-state-map "c" 'evil-backward-char) + (define-key evil-motion-state-map "C" 'evil-window-top) + (define-key evil-motion-state-map "t" 'evil-next-line) + (define-key evil-motion-state-map "s" 'evil-previous-line) + (define-key evil-motion-state-map "r" 'evil-forward-char) + (define-key evil-motion-state-map "R" 'evil-window-bottom) + (define-key evil-motion-state-map "j" 'evil-find-char-to) + (define-key evil-motion-state-map "J" 'evil-find-char-to-backward) + + (evil-set-initial-state 'messages-buffer-mode 'normal) + (evil-set-initial-state 'dashboard-mode 'normal)) + +(use-package evil-collection + :after evil + :defer t + :config + (evil-collection-init)) + +(use-package hydra + :defer t) + +(defhydra hydra-text-scale (:timeout 4) + "scale text" + ("t" text-scale-increase "in") + ("s" text-scale-decrease "out") + ("q" nil "quit" :exit t)) + +(use-package projectile + :defer t + :diminish projectile-mode + :config (projectile-mode) + :custom ((projectile-completion-system 'ivy)) + :bind-keymap + ("C-c p" . projectile-command-map) + :init + ;; NOTE: Set this to the folder where you keep your Git repos! + (when (file-directory-p "~/Documents/code") + (setq projectile-project-search-path '("~/Documents/code"))) + (setq projectile-switch-project-action #'projectile-dired)) + +(use-package counsel-projectile + :defer t + :config (counsel-projectile-mode)) + +(use-package magit + :defer t + :custom + (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) + +;; (use-package evil-magit +;; :after magit) + +;; NOTE: Make sure to configure a GitHub token before using this package! +;; - https://magit.vc/manual/forge/Token-Creation.html#Token-Creation +;; - https://magit.vc/manual/ghub/Getting-Started.html#Getting-Started +(use-package forge + :defer t) + +(defun phundrak-find-org-files () + "Find all org files in the directories listed in +`phundrak-org-directories', then list them in an ido buffer where +the user can match one and open it." + (interactive) + (find-file + (ivy-completing-read + "Org File: " + (s-split "\n" + (mapconcat (lambda (path) + (shell-command-to-string + (format "fd . %s -e org -c never" path))) + phundrak-org-directories + "\n"))))) + +;;;;;;;;;;;;;;;; Dashboard + +(use-package dashboard + :ensure t + :config + (setq dashboard-banner-logo-title "Phundrak’s Vanilla Emacs" + dashboard-startup-banner 'logo + dashboard-center-content t + dashboard-show-shortcuts t + dashboard-set-navigator t + dashboard-set-heading-icons t + dashboard-set-file-icons t + dashboard-projects-switch-function 'counsel-projectile-switch-project-by-name + initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) + (setq dashboard-navigator-buttons + `( + ((,(all-the-icons-faicon "language" :height 1.1 :v-adjust 0.0) + "Linguistics website" + "" + (lambda (&rest _) (browse-url "https://langue.phundrak.com"))) + + (,(all-the-icons-faicon "firefox" :height 1.1 :v-adjust 0.0) + "Config Website" + "" + (lambda (&rest _) (browse-url "https://config.phundrak.com")))) + + ((,(all-the-icons-octicon "git-branch" :height 1.1 :v-adjust 0.0) + "Dotfiles sources" + "" + (lambda (&rest _) (browse-url "https://labs.phundrak.com/phundrak/dotfiles"))) + ("!" "Issues" "Show issues" (lambda (&rest _) + (browse-url "https://labs.phundrak.com/phundrak/dotfiles/issues")) + warning)))) + (setq dashboard-items '((recents . 15) + (projects . 10))) + (dashboard-setup-startup-hook) + :init + (add-hook 'after-init-hook 'dashboard-refresh-buffer)) + + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Keybindings ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defvar phundrak-org-directories '("~/org" + "~/Documents/university/S8" + "~/Documents/conlanging") + "Directories in which to look for org files with the function +`phundrak-find-org-files'.") + +(defun split-window-right-and-focus () + (interactive) + (split-window-right) + (windmove-right) + (when (and (boundp 'golden-ratio-mode) + (symbol-value golden-ratio-mode)) + (golden-ratio))) + +(defun split-window-below-and-focus () + (interactive) + (split-window-below) + (windmove-down) + (when (and (boundp 'golden-ratio-mode) + (symbol-value golden-ratio-mode)) + (golden-ratio))) + +(defun ibuffer-list-buffers-and-focus () + (interactive) + (ibuffer-list-buffers) + (windmove-down) + (when (and (boundp 'golden-ratio-mode) + (symbol-value golden-ratio-mode)) + (golden-ratio))) + +(define-key evil-motion-state-map (kbd ",") nil) + +(leader/set-keys + "b" "buffers" + "bb" #'counsel-ibuffer + "bi" #'ibuffer-list-buffers-and-focus + "bd" #'kill-this-buffer + "bD" #'kill-buffer + + "f" "files" + "fi" (lambda () + (interactive) + (find-file (expand-file-name "init.el" user-emacs-directory))) + "ff" #'find-file + "fo" #'phundrak-find-org-files + "fs" #'save-buffer + + "h" "help" + "hdf" #'helpful-callable + "hdv" #'helpful-variable + + "t" "toggles" + "tt" #'counsel-load-theme + + "T" "text" + "Ts" #'hydra-text-scale/body + + "w" "windows" + "w-" #'split-window-below-and-focus + "w/" #'split-window-right-and-focus + "wo" #'other-window + "wd" #'delete-window + "wc" #'evil-window-left + "wt" #'evil-window-down + "ws" #'evil-window-up + "wr" #'evil-window-right + + "q" "quit" + "qq" #'kill-emacs + ) + +(leader/set-keys-for-major-mode 'emacs-lisp-mode + "e" '("eval" . "evaluate expression") + "ee" 'eval-last-sexp + "ed" 'eval-defun + "er" 'eval-region) + +;; Flycheck won’t shut up if I don’t add this +;; (provide 'init) +;;; init.el ends here diff --git a/.gitmodules b/.gitmodules index 57d1e5c..8315088 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,9 @@ [submodule ".mozilla/firefox/lruehqec.default/chrome"] path = fromGIT/blurredfox-nord url = git@labs.phundrak.com:phundrak/blurredfox-nord.git +[submodule ".emacs.d"] + path = .emacs.d + url = git@github.com:plexus/chemacs2.git +[submodule ".emacs.doom"] + path = .emacs.doom + url = git@github.com:hlissner/doom-emacs.git diff --git a/.spacemacs b/.spacemacs index 6b96278..19065f0 100644 --- a/.spacemacs +++ b/.spacemacs @@ -1,8 +1,10 @@ ;; -*- mode: emacs-lisp; lexical-binding: t -*- -(defvar phundrak--dotspacemacs-src-dir "~/.config/emacs/private/" - "Directory for my exported Elisp configuration files") + +;;; Code: +(defvar phundrak--dotspacemacs-src-dir "~/.emacs.spacemacs/private/" + "Directory for my exported Elisp configuration files.") (defvar phundrak--dotspacemacs-src "~/org/config/emacs.org" - "My litterate config file for Emacs") + "My litterate config file for Emacs.") (defvar phundrak--dotspacemacs-si (concat phundrak--dotspacemacs-src-dir "spacemacs-init")) (defvar phundrak--dotspacemacs-sl (concat phundrak--dotspacemacs-src-dir "spacemacs-layers")) (defvar phundrak--dotspacemacs-uc (concat phundrak--dotspacemacs-src-dir "user-config")) diff --git a/org/config/emacs.org b/org/config/emacs.org index 8c35b65..f622277 100644 --- a/org/config/emacs.org +++ b/org/config/emacs.org @@ -20,8 +20,8 @@ older than the Org file, then Emacs tangles them again, and then loads them. * Spacemacs layers and packages :PROPERTIES: -:header-args:emacs-lisp: :mkdirp yes :tangle ~/.config/emacs/private/spacemacs-layers.el :exports code :results silent :lexical t :CUSTOM_ID: Spacemacs_layers_and_packages-6d318b87 +:header-args:emacs-lisp: :mkdirp yes :tangle ~/.emacs.spacemacs/private/spacemacs-layers.el :exports code :results silent :lexical t :END: #+BEGIN_SRC emacs-lisp :exports none ;; -*- lexical-binding: t -*- @@ -622,7 +622,7 @@ tools. * Init :PROPERTIES: -:header-args:emacs-lisp: :mkdirp yes :tangle ~/.config/emacs/private/spacemacs-init.el :exports code :results silent :lexical t +:header-args:emacs-lisp: :mkdirp yes :tangle ~/.emacs.spacemacs/private/spacemacs-init.el :exports code :results silent :lexical t :CUSTOM_ID: Init-99a4b561 :END: #+BEGIN_SRC emacs-lisp :exports none @@ -653,7 +653,7 @@ about how I manage writing a litterate config for Spacemacs and ensure Emacs starts with an up-to-date configuration from said litterate config. For that, I actually declared a couple of variables: #+BEGIN_SRC emacs-lisp - (defvar phundrak--dotspacemacs-src-dir "~/.config/emacs/private/" + (defvar phundrak--dotspacemacs-src-dir "~/.emacs.spacemacs/private/" "Directory for my exported Elisp configuration files") (defvar phundrak--dotspacemacs-src "~/org/config/emacs.org" "My litterate config file for Emacs") @@ -738,7 +738,7 @@ sub-directory. To load it when starting Emacs, the parameter ~--dump-file~ should be added when invoking Emacs 27.1 executable from the command line, for instance: #+BEGIN_SRC sh :tangle no :exports code - ./emacs --dump-file=~/.config/emacs/.cache/dumps/spacemacs.pdmp + ./emacs --dump-file=~/.emacs.spacemacs/.cache/dumps/spacemacs.pdmp #+END_SRC The default value of this variable is ~"spacemacs.pdmp"~. @@ -1373,7 +1373,7 @@ for lsp servers in emacs 27. :END: ** User Init :PROPERTIES: -:header-args:emacs-lisp: :mkdirp yes :tangle ~/.config/emacs/private/user-init.el :exports code :results silent :lexical t +:header-args:emacs-lisp: :mkdirp yes :tangle ~/.emacs.spacemacs/private/user-init.el :exports code :results silent :lexical t :CUSTOM_ID: User-Initialization-User-Init-a86829cf :END: #+BEGIN_SRC emacs-lisp :exports none @@ -1384,7 +1384,7 @@ While Emacs and especially Spacemacs loads, I want it to initialize some elements and load some packages. First of all, I want it to load my private Emacs config file: #+BEGIN_SRC emacs-lisp - (load "~/.config/emacs/private/private_emacs") + (load "~/.emacs.spacemacs/private/private_emacs") #+END_SRC I would also like to enable the setup of flycheck for Rust when Flycheck is @@ -1411,7 +1411,7 @@ hosts if I don’t have this code snippet. ** User Load :PROPERTIES: -:header-args:emacs-lisp: :mkdirp yes :tangle ~/.config/emacs/private/user-load.el :exports code :results silent :lexical t +:header-args:emacs-lisp: :mkdirp yes :tangle ~/.emacs.spacemacs/private/user-load.el :exports code :results silent :lexical t :CUSTOM_ID: User-Initialization-User-Load-488cf687 :END: Then, I want a couple of requires: @@ -1426,7 +1426,7 @@ Then, I want a couple of requires: * User Configuration :PROPERTIES: -:header-args:emacs-lisp: :mkdirp yes :tangle ~/.config/emacs/private/user-config.el :exports code :results silent :lexical t +:header-args:emacs-lisp: :mkdirp yes :tangle ~/.emacs.spacemacs/private/user-config.el :exports code :results silent :lexical t :CUSTOM_ID: User_Configuration-4a937fe5 :END: #+BEGIN_SRC emacs-lisp :exports none @@ -2598,7 +2598,7 @@ such as with this document. ) #+END_SRC -#+BEGIN_SRC emacs-lisp :tangle ~/.config/emacs/private/user-config.el :exports none :noweb yes +#+BEGIN_SRC emacs-lisp :tangle ~/.emacs.spacemacs/private/user-config.el :exports none :noweb yes (with-eval-after-load 'org ;; agenda <> @@ -4103,13 +4103,13 @@ user. Unfortunately, a lot of these files are just noise I don’t care about, b fortunately we can ignore files with the variable ~recentf-exclude~. So, I will ignore these paths: #+name: recentf-ignored-paths -| =~/.authinfo.gpg= | -| =~/.mail/= | -| =~/.emacs.d/= | -| =~/.config/emacs/= | -| =~/.elfeed/index= | -| =~/Documents/mu4e= | -| =/tmp/= | +| =~/.authinfo.gpg= | +| =~/.mail/= | +| =~/.emacs.d/= | +| =~/.emacs.spacemacs/= | +| =~/.elfeed/index= | +| =~/Documents/mu4e= | +| =/tmp/= | #+name: recentf-ignored-paths-gen #+header: :var paths=recentf-ignored-paths @@ -4947,10 +4947,10 @@ directories that are version controlled that I do not want to see in my list of projects, namely all the cached AUR packages from my AUR helper, ~paru~. They are all stored in the same parent directory, so let’s ignore that. I will also make Emacs ignore all ~node_modules~ directories it could encounter. And for -some reason, =~/.config/emacs= is always in my projects list (I now use +some reason, =~/.emacs.spacemacs= is always in my projects list (I now use XDG-compliant directories), so let’s also ignore that. #+BEGIN_SRC emacs-lisp - (setq projectile-ignored-projects '("~/.cache/paru" "~/.config/emacs" "/tmp")) + (setq projectile-ignored-projects '("~/.cache/paru" "~/.emacs.spacemacs" "/tmp")) (add-to-list 'projectile-globally-ignored-directories "node_modules") #+END_SRC @@ -5029,9 +5029,9 @@ break. :END: Yasnippet’s snippets tool is extremely powerful and allows me to write very quickly code. For now, we have snippets for two modes. The files you’ll see -below are exported to ~$HOME/.config/emacs/private/snippets/~ and to their +below are exported to ~$HOME/.emacs.spacemacs/private/snippets/~ and to their respective mode directory. For instance, my ~caption~ snippet for org-mode will -be exported to ~$HOME/.config/emacs/private/snippets/org-mode/caption~. +be exported to ~$HOME/.emacs.spacemacs/private/snippets/org-mode/caption~. Be aware that on top of these custom snippets, I also use the package [[file:awesome.org::#Autostart-f2cf42fe][yasnippet-snippets]] which provide plenty of already made snippets. @@ -5042,7 +5042,7 @@ Be aware that on top of these custom snippets, I also use the package :END: I have so far two snippets, the first one is actually just a convenience to make it easier to type a ~println!~ macro than the default snippet. -#+BEGIN_SRC snippet :tangle ~/.config/emacs/private/snippets/rust-mode/println +#+BEGIN_SRC snippet :tangle ~/.emacs.spacemacs/private/snippets/rust-mode/println # -*- mode: snippet -*- # name: println # key: pln @@ -5054,7 +5054,7 @@ The second one is more interesting: it is used to create a ~new~ method for a struct, and it will try to create a function that will assign each argument passed to the method to members of the struct. It relies on the custom function [[#Custom-functions-yas-rust-new-assignments-4ad16bde][I wrote here]]. -#+BEGIN_SRC snippet :tangle ~/.config/emacs/private/snippets/rust-mode/new +#+BEGIN_SRC snippet :tangle ~/.emacs.spacemacs/private/snippets/rust-mode/new # -*- mode: snippet -*- # name: new # key: _new @@ -5074,7 +5074,7 @@ passed to the method to members of the struct. It relies on the custom function The first two snippets are used to add HTML or LaTeX attributes to elements in org-mode. The third also has a similar usage, inserting a ~#+CAPTION~ header before an element, as well as the fourth which inserts a ~#+NAME~ header. -#+BEGIN_SRC snippet :tangle ~/.config/emacs/private/snippets/org-mode/attr_html +#+BEGIN_SRC snippet :tangle ~/.emacs.spacemacs/private/snippets/org-mode/attr_html # -*- mode: snippet -*- # name: ATTR HTML # key: