even more of my dotspacemacs in spacemacs.org

This commit is contained in:
Lucien Cartier-Tilet 2020-01-16 00:49:36 +01:00
parent 21aa91b778
commit 3f06bb7740
Signed by: phundrak
GPG Key ID: BD7789E705CB8DCA
2 changed files with 508 additions and 220 deletions

View File

@ -2,217 +2,6 @@
;; This file is loaded by Spacemacs at startup. ;; This file is loaded by Spacemacs at startup.
;; It must be stored in your home directory. ;; It must be stored in your home directory.
(defun dotspacemacs/layers ()
"Layer configuration:
This function should only modify configuration layer settings."
(setq-default
;; Base distribution to use. This is a layer contained in the directory
;; `+distribution'. For now available distributions are `spacemacs-base'
;; or `spacemacs'. (default 'spacemacs)
dotspacemacs-distribution 'spacemacs
;; Lazy installation of layers (i.e. layers are installed only when a file
;; with a supported type is opened). Possible values are `all', `unused'
;; and `nil'. `unused' will lazy install only unused layers (i.e. layers
;; not listed in variable `dotspacemacs-configuration-layers'), `all' will
;; lazy install any layer that support lazy installation even the layers
;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy
;; installation feature and you have to explicitly list a layer in the
;; variable `dotspacemacs-configuration-layers' to install it.
;; (default 'unused)
dotspacemacs-enable-lazy-installation 'unused
;; If non-nil then Spacemacs will ask for confirmation before installing
;; a layer lazily. (default t)
dotspacemacs-ask-for-lazy-installation t
;; List of additional paths where to look for configuration layers.
;; Paths must have a trailing slash (i.e. `~/.mycontribs/')
dotspacemacs-configuration-layer-path '()
;; List of configuration layers to load.
dotspacemacs-configuration-layers
'(asm
(auto-completion :variables
auto-completion-complete-with-key-sequence-delay 0.2
auto-completion-enable-help-tooltip 'manual
auto-completion-enable-snippets-in-popup t
auto-completion-enable-sort-by-usage t
:disabled-for
org
git)
(better-defaults :variables
better-defaults-move-to-beginning-of-code-first t
better-defaults-move-to-end-of-code-first t)
(c-c++ :variables
c-c++-default-mode-for-headers 'c-mode
c-c++-adopt-subprojects t
c-c++-enable-google-style t
c-c++-enable-c++11 t
c-c++-backend 'lsp-ccls
c-c++-lsp-executable "/usr/bin/ccls"
c-c++-lsp-sem-highlight-method 'overlay
c-c++-lsp-sem-highlight-rainbow t
c-c++-adopt-subprojects t
c++-enable-organize-includes-on-save t)
(cmake :variables
cmake-enable-cmake-ide-support t)
conlanging
csv
colors
(dart :variables
dart-server-sdk-path "/opt/flutter/bin/cache/dart-sdk/"
lsp-dart-sdk-dir "/opt/flutter/bin/cache/dart-sdk/")
dap
dired-phundrak
django
docker
emacs-lisp
epub
ess
git
graphviz
(go :variables
go-backend 'lsp
go-tab-width 2
go-use-golangci-lint t)
gnus
(helm :variables
helm-no-header t
helm-use-fuzzy 'source)
helpful
(html :variables
web-fmt-tool 'web-beautify
css-enable-lsp t
less-enable-lsp t
scss-enable-lsp t
html-enable-lsp t)
(ibuffer :variables
ibuffer-group-buffers-by 'projects)
imenu-list
(javascript :variables
javascript-backend 'lsp
javascript-lsp-linter nil
javascript-fmt-tool 'web-beautify
javascript-repl 'skewer
node-add-modules-path t)
(json :variables
json-fmt-tool 'web-beautify)
(keyboard-layout :variables
kl-layout 'bepo
kl-disabled-configurations '(magit dired eww))
(latex :variables
latex-build-command "xelatex"
latex-enable-auto-fill t
latex-enable-folding t
latex-enable-magic t)
lsp
major-modes
(markdown :variables
markdown-live-preview-engine 'vmd
markdown-mmm-auto-modes '("c"
"c++"
"python"
"rust"
("elisp" "emacs-lisp")))
nginx
(org :variables
org-enable-reveal-js-support t
org-enable-github-support t
spaceline-org-clock-p t
org-enable-sticky-header t
org-enable-epub-support t
org-projectile-file "TODOs.org"
org-download-image-dir "~/Pictures/org/"
org-enable-org-journal-support t
org-journal-dir "~/org/journal/"
org-journal-file-format "%Y-%m-%d"
org-enable-epub-support t
org-return-follows-link t)
pass
pdf
prettier
prolog
(python :variables
python-backend 'lsp
python-sort-imports-on-save t
python-fill-column 80
python-test-runner '(pytest nose)
python-formatter 'lsp)
(restclient :variables
restclient-use-org t)
(rust :variables rust-backend 'lsp)
(scheme :variables
geiser-chicken-binary "chicken-csi")
semantic
(shell :variables
shell-default-height 40
shell-default-position 'bottom
shell-default-shell 'eshell)
shell-scripts
selectric
semantic
(spell-checking :variables
spell-checking-enable-by-default nil
spell-checking-enable-auto-dictionary t
enable-flyspell-auto-completion nil)
(syntax-checking :variables
spell-checking-enable-by-default nil
spell-checking-enable-auto-dictionary t
syntax-checking-enable-tooltips t
syntax-checking-use-original-bitmaps t)
systemd
(treemacs :variables
treemacs-use-follow-mode nil
treemacs-use-filewatch-mode t)
twitter
unicode-fonts
w3m
xkcd
web-beautify
yaml)
;; List of additional packages that will be installed without being
;; wrapped in a layer. If you need some configuration for these
;; packages, then consider creating a layer. You can also put the
;; configuration in `dotspacemacs/user-config'.
;; To use a local version of a package, use the `:location' property:
;; '(your-package :location "~/path/to/your-package/")
;; Also include the dependencies as they will not be resolved automatically.
dotspacemacs-additional-packages '(atomic-chrome
dired-du
doom-themes
edit-indirect
elcord
eshell-git-prompt
flycheck-golangci-lint
kaolin-themes
magit-gitflow
meson-mode
modern-cpp-font-lock
multiple-cursors
org-sidebar
outorg
pinentry
visual-fill-column
wttrin
xresources-theme
yasnippet-snippets)
;; A list of packages that cannot be updated.
dotspacemacs-frozen-packages '()
;; A list of packages that will not be installed and loaded.
dotspacemacs-excluded-packages '()
;; Defines the behaviour of Spacemacs when installing packages.
;; Possible values are `used-only', `used-but-keep-unused' and `all'.
;; `used-only' installs only explicitly used packages and deletes any unused
;; packages as well as their unused dependencies. `used-but-keep-unused'
;; installs only the used packages but won't delete unused ones. `all'
;; installs *all* packages supported by Spacemacs and never uninstalls them.
;; (default is `used-only')
dotspacemacs-install-packages 'used-only))
(defun dotspacemacs/init () (defun dotspacemacs/init ()
"Initialization: "Initialization:
This function is called at the very beginning of Spacemacs startup, This function is called at the very beginning of Spacemacs startup,
@ -222,9 +11,11 @@ It should only modify the values of Spacemacs settings."
phundrak/gnus-uc (concat (getenv "HOME") "/.gnus.el") phundrak/gnus-uc (concat (getenv "HOME") "/.gnus.el")
phundrak/src (concat (getenv "HOME") "/spacemacs.org") phundrak/src (concat (getenv "HOME") "/spacemacs.org")
phundrak/si (concat phundrak/src-dir "spacemacs-init.el") phundrak/si (concat phundrak/src-dir "spacemacs-init.el")
phundrak/sl (concat phundrak/src-dir "spacemacs-layers.el")
phundrak/uc (concat phundrak/src-dir "user-config.el") phundrak/uc (concat phundrak/src-dir "user-config.el")
phundrak/ui (concat phundrak/src-dir "user-init.el")) phundrak/ui (concat phundrak/src-dir "user-init.el"))
(when (or (file-newer-than-file-p phundrak/src phundrak/si) (when (or (file-newer-than-file-p phundrak/src phundrak/si)
(file-newer-than-file-p phundrak/src phundrak/sl)
(file-newer-than-file-p phundrak/src phundrak/ui) (file-newer-than-file-p phundrak/src phundrak/ui)
(file-newer-than-file-p phundrak/src phundrak/uc) (file-newer-than-file-p phundrak/src phundrak/uc)
(file-newer-than-file-p phundrak/src phundrak/gnus-uc)) (file-newer-than-file-p phundrak/src phundrak/gnus-uc))
@ -237,6 +28,11 @@ It should only modify the values of Spacemacs settings."
(load-file phundrak/si)) (load-file phundrak/si))
(defun dotspacemacs/layers ()
"Layer configuration:
This function should only modify configuration layer settings."
(load-file phundrak/sl))
(defun dotspacemacs/user-env () (defun dotspacemacs/user-env ()
"Environment variables setup. "Environment variables setup.
This function defines the environment variables for your Emacs session. By This function defines the environment variables for your Emacs session. By
@ -341,12 +137,7 @@ This function is called at the very end of Spacemacs initialization."
(quote (quote
((org-confirm-babel-evaluate) ((org-confirm-babel-evaluate)
(javascript-backend . tern) (javascript-backend . tern)
(javascript-backend . lsp) (javascript-backend . lsp))))
(go-backend . go-mode)
(go-backend . lsp))))
'(send-mail-function (quote smtpmail-send-it))
'(smtpmail-smtp-server "mail.phundrak.com")
'(smtpmail-smtp-service 587)
'(solaire-mode-auto-swap-bg t) '(solaire-mode-auto-swap-bg t)
'(vc-annotate-background "#282c34") '(vc-annotate-background "#282c34")
'(vc-annotate-color-map '(vc-annotate-color-map

View File

@ -5,6 +5,506 @@
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundraks Spacemacs Configuration" /> #+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundraks Spacemacs Configuration" />
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the Spacemacs configuration of Phundrak" /> #+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the Spacemacs configuration of Phundrak" />
* Spacemacs layers and packages
:PROPERTIES:
:header-args:emacs-lisp: :comments link :tangle ~/.emacs.d/private/spacemacs-layers.el :exports code
:CUSTOM_ID: h-9d9869e0-4672-419c-bf37-3d3ae1b7c0aa
:END:
Here will be our layer configuration set. Everything here is set with a
~setq-default~ in the ~dotspacemacs/layers~ function like so:
#+BEGIN_SRC emacs-lisp :tangle no
(defun dotspacemacs/layers ()
(setq-default
;; configuration goes here
))
#+END_SRC
** General configuration
:PROPERTIES:
:CUSTOM_ID: h-ecfe1909-18af-451d-b78f-0d7e5a1d45c0
:END:
First, we need to tell Spacemacs which base distribution we are using. This
is a layer contained in the directory ~+distribution~. For now, available
distributions are ~spacemacs-base~ and ~spacemacs~ (the default one).
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-distribution 'spacemacs)
#+END_SRC
We can seet a lazy installation of layers —i.e. layers are installed only
when a file with a supported type is opened. Possible values are:
- ~all~ :: will lazy install any layer that support lazy installation even
the layers listed in ~dotspacemacs-configuration-layers~
- ~unused~ :: will lazy install only unused layers (i.e. layers not listed in
the variable ~dotspacemacs-configuration-layers~)
- ~nil~ :: disables the lazy installation feature and you have to explicitly
list a layer in the variable ~dotspacemacs-configuration-layers~
to install it.
The default value is ~unused~.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-enable-lazy-installation 'unused)
#+END_SRC
If the following variable is non-nil, Spacemacs will ask for confirmation
before installing a layer lazily. The default value is ~t~.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-ask-for-lazy-installation t)
#+END_SRC
** Package management
:PROPERTIES:
:CUSTOM_ID: h-587fd3fb-5a99-4c19-af02-b1553c6acfae
:END:
It is possible to indicate to Spacemacs a list of additional paths where to
look for configuration layers. Paths must have a trailing slash, i.e.
=~/.mycontribs/=. As you can see, I added none:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layer-path '())
#+END_SRC
However, I do have additional packages I installed either from the Elpa or
the Melpa. These are set in ~dotspacemacs-additional-packages~, a list of
additional packages that will be installed without being wrapped in a layer.
If you need some configuration for these packages, then consider creating a
layer. You can also puth the configuration in ~dotspacemacs/user-config~. To
use a local version of a package, use the ~:location~ property, for instance:
#+BEGIN_SRC emacs-lisp :tangle no
'(your-package :location "~/path/to/your-package/")
#+END_SRC
Alos include the dependencies as they will not be resolved automatically:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-additional-packages '(atomic-chrome
dired-du
doom-themes
edit-indirect
elcord
eshell-git-prompt
flycheck-golangci-lint
kaolin-themes
magit-gitflow
meson-mode
modern-cpp-font-lock
multiple-cursors
org-sidebar
outorg
pinentry
visual-fill-column
wttrin
xresources-theme
yasnippet-snippets))
#+END_SRC
It is possible to also list packages that cannot be updated:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-frozen-packages '())
#+END_SRC
And to list packages which wont be installed nor loaded:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-excluded-packages '())
#+END_SRC
Finally, it is possible to define the behaviour of Spacemacs when installing
packages. Possible values are:
- ~used-only~ :: installs only explicitly used packages and deletes any
unused packages as well as their unused dependencies
- ~used-but-keep-unused~ :: installs only the used packages but wont delete
unused ones
- ~all~ :: installs *all* packages supported by Spacemacs and never
uninstalls them.
The default value is ~used-only~.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-install-packages 'used-only)
#+END_SRC
** Layers
:PROPERTIES:
:CUSTOM_ID: h-313bf79e-c24c-40a6-8bc0-eb608fda05d9
:END:
All layers are set one variable: ~dotspacemacs-configuration-layers~. This
variable is a list of layers, some of them will have some custom variables.
Typically, the variable will be set like so:
#+BEGIN_SRC emacs-lisp :tangle no
(setq-default dotspacemacs-configuration-layers
'(emacs-lisp
helm
multiple-cursors
org
(shell :variables shell-default-height
30 shell-default-position 'bottom)
treemacs))
#+END_SRC
# Dont delete this code block, it wraps the layers
#+BEGIN_SRC emacs-lisp :exports none
(setq-default dotspacemacs-configuration-layers '(
#+END_SRC
*** Checkers
:PROPERTIES:
:CUSTOM_ID: h-04664b1a-8138-4566-8b63-8050437351a7
:END:
The two first checkers I use are for spell and syntax checking.
~spell-checking~ is disabled by default, however it should auto-detect the
dictionary to use.
#+BEGIN_SRC emacs-lisp
(spell-checking :variables
spell-checking-enable-by-default nil
spell-checking-enable-auto-dictionary t)
syntax-checking
#+END_SRC
*** Completion
:PROPERTIES:
:CUSTOM_ID: h-fc18dd98-1411-4516-a87c-6c1047d2a13c
:END:
~auto-completion~ is a layer enabled in order to provide auto-completion to
all supported language layers. It is set so that the =RET= key has no
behavior with this layer, however the =TAB= key cycles between candidates
displayed by the auto-completion toolbox. I also want the autocompletion to
include snippets in the popup, and the content of the popup is sorted by
usage. It is also disabled for two modes: magit and Org.
#+BEGIN_SRC emacs-lisp
(auto-completion :variables
auto-completion-complete-with-key-sequence-delay 0.2
auto-completion-enable-help-tooltip 'manual
auto-completion-enable-snippets-in-popup t
auto-completion-enable-sort-by-usage t
:disabled-for
org
git)
#+END_SRC
~helm~ is also enabled, with its header disabled.
#+BEGIN_SRC emacs-lisp
(helm :variables helm-no-header t)
#+END_SRC
*** Email
:PROPERTIES:
:CUSTOM_ID: h-0db2333c-86bf-4b41-8226-da66885fce36
:END:
As described below, I use Gnus as my main email client. Therefore, I have
the gnus layer enabled:
#+BEGIN_SRC emacs-lisp
gnus
#+END_SRC
*** Emacs
:PROPERTIES:
:CUSTOM_ID: h-ad6174a6-4056-420e-9620-3da5f00bd3fc
:END:
The first layer enabled in this category is ~better-defaults~. I also made
it so that when a command equivalent to ~C-a~ or ~C-e~ is pressed, the
cursor will respectively first move to the beginning of code first before
going past the indentation and to the end of the code before going to the
end of the line before going over the end of the comments on the same line.
#+BEGIN_SRC emacs-lisp
(better-defaults :variables
better-defaults-move-to-beginning-of-code-first t
better-defaults-move-to-end-of-code-first t)
#+END_SRC
I also enabled ~ibuffer~ and made it so that buffers are sorted by projects.
#+BEGIN_SRC emacs-lisp
(ibuffer :variables
ibuffer-group-buffers-by 'projects)
#+END_SRC
Most important of all, the ~org~ layer is also enabled. I enabled support
for Epub exports, Github, Reveal.JS exports, and sticky headers. Project
support is also enabled through files named ~TODOs.org~. I also set the
org-download folder for images in =~/Pictures/org/=, and I set the =RET= key
to follow org links if the cursor is on one.
#+BEGIN_SRC emacs-lisp
(org :variables
org-enable-epub-support t
org-enable-github-support t
org-enable-reveal-js-support t
org-enable-sticky-header t
org-enable-org-journal-support t
spaceline-org-clock-p t
org-projectile-file "TODOs.org"
org-download-image-dir "~/Pictures/org/"
org-return-follows-link t)
#+END_SRC
The ~semantic~ layer is also enabled.
#+BEGIN_SRC emacs-lisp
semantic
#+END_SRC
*** File trees
:PROPERTIES:
:CUSTOM_ID: h-35f135ac-45cd-4e91-a23d-41700dc7495f
:END:
In this category, I only enabled one layer: ~treemacs~. In this layer, I set
is so that treemacs syncs with my current buffer, and it automatically
refreshes its buffer when there is a change in the part of the file system
shown by treemacs.
#+BEGIN_SRC emacs-lisp
(treemacs :variables
treemacs-use-follow-mode t
treemacs-use-filewatch-mode t)
#+END_SRC
*** Fonts
:PROPERTIES:
:CUSTOM_ID: h-7a0a7d6d-6caa-4504-acf6-f97c25436ef1
:END:
In this category, again, one layer is enabled: ~unicode-fonts~. This layer
addssupport for the ~unicode-fonts~ package.
#+BEGIN_SRC emacs-lisp
unicode-fonts
#+END_SRC
*** Fun
:PROPERTIES:
:CUSTOM_ID: h-3aec0cda-50d5-4c31-a57e-4244a254a57f
:END:
In this category, I only enabled two layers: ~selectric~ and ~xkcd~.
#+BEGIN_SRC emacs-lisp
selectric xkcd
#+END_SRC
*** Internationalization
:PROPERTIES:
:CUSTOM_ID: h-0edb1ff3-15a1-46cd-b980-7fdd124020b6
:END:
In this category, I enabled the ~keyboard-layout~ layer to enable
compatibility with the bépo layout. This layer, however, is disabled for
magit, Dired and eww.
#+BEGIN_SRC emacs-lisp
(keyboard-layout :variables
kl-layout 'bepo
kl-disabled-configurations '(magit dired eww))
#+END_SRC
*** Programming languages
:PROPERTIES:
:CUSTOM_ID: h-9dd88370-a959-4266-a01e-2231f9008a1f
:END:
**** Domain-specific (DSLs)
:PROPERTIES:
:CUSTOM_ID: h-c212d89f-6854-48f3-84a5-8195811bfc4d
:END:
In this category, I enabled support for the R programming language (the
~ess~ layer), the ~major-modes~ layer for the Arch Linux PKGBUILDs support,
the ~prolog~, ~emacs-lisp~ and ~scheme~ layers, support for the CSV format
with the ~csv~ layer, the ~yaml~ language, shell scripting languages and
support for the ~dot~ tool with the ~graphviz~ layer.
#+BEGIN_SRC emacs-lisp
ess major-modes prolog emacs-lisp scheme graphviz yaml shell-scripts
#+END_SRC
I also added support for HTML and CSS with the ~html~ layer, with the web
formatting tool set to ~web-beautify~, and the LSP layer compatibility
enabled for CSS, less, SCSS and HTML.
#+BEGIN_SRC emacs-lisp
(html :variables
web-fmt-tool 'web-beautify
css-enable-lsp t
less-enable-lsp t
scss-enable-lsp t
html-enable-lsp t)
#+END_SRC
The ~json~ layer is also enabled, with the format tool set to
~web-beautify~.
#+BEGIN_SRC emacs-lisp
(json :variables
json-fmt-tool 'web-beautify)
#+END_SRC
The LaTeX layer has also been enabled, with its default compiler set to
XeLaTeX. I also enabled the auto-fill feature, the folding capacity and the
“magic” symbols.
#+BEGIN_SRC emacs-lisp
(latex :variables
latex-build-command "xelatex"
latex-enable-auto-fill t
latex-enable-folding t
latex-enable-magic t)
#+END_SRC
The Markdown layer has been enabled, with support for live preview with
~vmd~, and and automatic MMM-mode generation for C, C++, Python, Rust and
Emacs Lisp.
#+BEGIN_SRC emacs-lisp
(markdown :variables
markdown-live-preview-engine 'vmd
markdown-mmm-auto-modes '("c"
"c++"
"python"
"rust"
("elisp" "emacs-lisp")))
#+END_SRC
**** Frameworks
:PROPERTIES:
:CUSTOM_ID: h-ac43dd9a-5a2f-4a80-bb35-535ec6e31e72
:END:
Only one framework support has been enabled so far, and is is for the
Django framework.
#+BEGIN_SRC emacs-lisp
django
#+END_SRC
**** General-purpose
:PROPERTIES:
:CUSTOM_ID: h-9d41427d-ec93-40c6-8c24-113c5b174fc3
:END:
Among the layers I activated, the only one without any specific
configuration is the ~asm~ layer for the Assembly language.
#+BEGIN_SRC emacs-lisp
asm
#+END_SRC
Next, you can find the C/C++ layer for which I set the default language for
~.h~ files to be C. I also enabled support for the C++11 standard, the
Google coding style for C++, support for subprojects and organization of
the include directives on a file save. I also set a couple of LSP-related
variables, such as the LSP executable for C/C++ for its CCLS backend and
some highlight variables.
#+BEGIN_SRC emacs-lisp
(c-c++ :variables
c-c++-default-mode-for-headers 'c-mode
c-c++-adopt-subprojects t
c-c++-enable-google-style t
c-c++-enable-c++11 t
c-c++-backend 'lsp-ccls
c-c++-lsp-executable "/usr/bin/ccls"
c-c++-lsp-sem-highlight-method 'overlay
c-c++-lsp-sem-highlight-rainbow t
c++-enable-organize-includes-on-save t)
#+END_SRC
Dart has also been enabled, with a custom path to the SDK of the Dart
server, and to the LSP server of Dart.
#+BEGIN_SRC emacs-lisp
(dart :variables
dart-server-sdk-path "/opt/flutter/bin/cache/dart-sdk/"
lsp-dart-sdk-dir "/opt/flutter/bin/cache/dart-sdk/")
#+END_SRC
When it comes to the Python layer, I set its backend and formatter to be
bound to the LSP layer. Its fill columnn was also set to 80 characters,
imports are sorted on save, and the tests can be run using either nose.el
or pytest.
#+BEGIN_SRC emacs-lisp
(python :variables
python-backend 'lsp
python-sort-imports-on-save t
python-fill-column 80
python-test-runner '(pytest nose)
python-formatter 'lsp)
#+END_SRC
With the Rust layer, the only custom configuration set is the backend being
bound to the LSP layer.
#+BEGIN_SRC emacs-lisp
(rust :variables rust-backend 'lsp)
#+END_SRC
As regards the JavaScript layer, I set its backend to the LSP layer, and
bound its format tool to ~web-beautify~ and its REPL is browser-based. I
also want to include ~node_modules/.bin~ to be automatically added to the
buffer local ~exec_path~.
#+BEGIN_SRC emacs-lisp
(javascript :variables
javascript-backend 'lsp
javascript-fmt-tool 'web-beautify
javascript-repl 'skewer
node-add-modules-path t)
#+END_SRC
*** Readers
:PROPERTIES:
:CUSTOM_ID: h-02099754-7102-4251-9e2e-a3ee33f4b469
:END:
In this category, only the ~epub~ and ~pdf~ layers are enabled so I can read
these files from Emacs directly.
#+BEGIN_SRC emacs-lisp
epub pdf
#+END_SRC
*** Version control
:PROPERTIES:
:CUSTOM_ID: h-53ebecc5-53da-4a0c-88f4-b031ff3b1952
:END:
Only the ~git~ layer is enabled in this category.
#+BEGIN_SRC emacs-lisp
git
#+END_SRC
*** Themes
:PROPERTIES:
:CUSTOM_ID: h-e593bbe4-d778-4b11-a450-4e6e418109fe
:END:
Here, the ~colors~ layer is the only one enabled. It activates support for
identifiers colorization, and strings representing colors.
#+BEGIN_SRC emacs-lisp
colors
#+END_SRC
*** Tools
:PROPERTIES:
:CUSTOM_ID: h-51f1d8a6-5f52-486a-a16b-301429cf8313
:END:
In this category, the first layer to be enabled is the CMake layer for which
I enabled support for the ~cmake-ide~ package.
#+BEGIN_SRC emacs-lisp
(cmake :variables
cmake-enable-cmake-ide-support t)
#+END_SRC
Next, we have the Docker, Nginx, Pass (the standard Unix password manager),
Prettier, Systemd, Imenu-list, Web-beautify, Dap, Helpful, and LSP layers
enabled.
#+BEGIN_SRC emacs-lisp
docker imenu-list nginx pass prettier systemd web-beautify helpful dap lsp
#+END_SRC
We also have the RestClient layer enabled for which I enabled the Org
compatibility support.
#+BEGIN_SRC emacs-lisp
(restclient :variables
restclient-use-org t)
#+END_SRC
And finally, we also have the Shell layer for which I specified its default
height when spawning at the bottom of the screen should be 40 lines high,
and the default shell to invoke is Eshell.
#+BEGIN_SRC emacs-lisp
(shell :variables
shell-default-height 40
shell-default-position 'bottom
shell-default-shell 'eshell)
#+END_SRC
*** Web Services
:PROPERTIES:
:CUSTOM_ID: h-6ec58708-518c-44f4-8ad0-3fa3b58117d5
:END:
In this category, I have only enabled a layer for Twitter support.
#+BEGIN_SRC emacs-lisp
twitter
#+END_SRC
*** Custom layers
:PROPERTIES:
:CUSTOM_ID: h-f9c6b261-f06b-4fd5-bf4e-161cb8744aeb
:END:
Lastly, three custom layers have been enabled: a w3m layer, and two of my
custom layers for Dired and for conlanging tools.
#+BEGIN_SRC emacs-lisp
conlanging dired-phundrak w3m
#+END_SRC
# Dont delete this code block, it wraps the layers
#+BEGIN_SRC emacs-lisp :exports none
))
#+END_SRC
* Init * Init
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h-3f3c8a0b-56cd-4be6-b019-3ba6f1e24f96 :CUSTOM_ID: h-3f3c8a0b-56cd-4be6-b019-3ba6f1e24f96
@ -622,9 +1122,6 @@
(setq-default dotspacemacs-whitespace-cleanup nil) (setq-default dotspacemacs-whitespace-cleanup nil)
#+END_SRC #+END_SRC
#+END_SRC
#+END_SRC
* User Initialization * User Initialization
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h-e297b9be-9b0d-4c2d-bb6e-402f0d00be0d :CUSTOM_ID: h-e297b9be-9b0d-4c2d-bb6e-402f0d00be0d