even more of my dotspacemacs in spacemacs.org
This commit is contained in:
parent
21aa91b778
commit
3f06bb7740
225
.spacemacs
225
.spacemacs
@ -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
|
||||||
|
503
spacemacs.org
503
spacemacs.org
@ -5,6 +5,506 @@
|
|||||||
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak’s Spacemacs Configuration" />
|
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak’s 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 won’t 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 won’t 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
|
||||||
|
|
||||||
|
# Don’t 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
|
||||||
|
|
||||||
|
# Don’t 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
|
||||||
|
Loading…
Reference in New Issue
Block a user