diff --git a/layers/LAYERS_WIP.org b/layers/LAYERS_WIP.org index 76e08f3a8..0a0c7a49d 100644 --- a/layers/LAYERS_WIP.org +++ b/layers/LAYERS_WIP.org @@ -1,288 +1,234 @@ #+TITLE: Configuration layers * Table of Contents :TOC_4_gh:noexport: -- [[#chats][Chats]] - - [[#erc-layer][ERC layer]] - - [[#jabber-layer][Jabber layer]] - - [[#rcirc-layer][RCIRC layer]] - - [[#slack-layer][Slack layer]] - [[#checkers][Checkers]] - - [[#spell-checking-layer][Spell Checking layer]] - - [[#syntax-checking-layer][Syntax Checking layer]] -- [[#completion][Completion]] - - [[#auto-completion-layer][Auto-completion layer]] - - [[#helm-layer][Helm layer]] - - [[#ivy-layer][Ivy layer]] - - [[#templates-layer][Templates layer]] -- [[#e-mail][E-mail]] - - [[#gnus-layer][Gnus layer]] - - [[#mu4e-layer][Mu4e layer]] - - [[#notmuch-layer][Notmuch layer]] -- [[#file-trees][File trees]] - - [[#neotree-layer][Neotree layer]] - - [[#treemacs-layer][Treemacs layer]] -- [[#fonts][Fonts]] - - [[#unicode-fonts-layer][unicode-fonts layer]] -- [[#emacs][Emacs]] - - [[#better-defaults-layer][Better Defaults layer]] - - [[#ibuffer-layer][IBuffer layer]] - - [[#org-layer][Org layer]] - - [[#semantic-layer][Semantic layer]] - - [[#smex-layer][Smex layer]] - - [[#typography-layer][Typography layer]] -- [[#frameworks][Frameworks]] - - [[#django-layer][Django layer]] - - [[#react-layer][React layer]] - - [[#ruby-on-rails-layer][Ruby on Rails layer]] - - [[#emberjs-layer][emberjs layer]] - - [[#phoenix-layer][phoenix layer]] -- [[#fun][Fun]] - - [[#emoji-layer][Emoji layer]] - - [[#games-layer][Games layer]] - - [[#selectric-layer][selectric layer]] - - [[#xkcd-layer][xkcd layer]] -- [[#internationalization][internationalization]] - - [[#chinese-layer][Chinese layer]] - - [[#japanese-layer][Japanese layer]] - - [[#keyboard-layout-layer][keyboard-layout layer]] -- [[#miscellaneous][Miscellaneous]] - - [[#parinfer-layer][Parinfer layer]] - - [[#copy-as-format-layer][copy-as-format layer]] - - [[#ietf-layer][ietf layer]] - - [[#multiple-cursors-layer][multiple-cursors layer]] - - [[#nlinum-layer][nlinum layer]] -- [[#music][Music]] - - [[#spotify-layer][Spotify layer]] -- [[#operating-systems][Operating systems]] - - [[#nixos-layer][NixOS layer]] - - [[#osx-layer][OSX layer]] -- [[#pair-programming][Pair programming]] - - [[#floobits-layer][Floobits layer]] -- [[#readers][Readers]] - - [[#dash-layer][Dash layer]] - - [[#deft-layer][Deft layer]] - - [[#elfeed-layer][Elfeed layer]] - - [[#pdf-layer][PDF layer]] - - [[#speed-reading-layer][Speed Reading layer]] - - [[#epub-layer][epub layer]] -- [[#programming-languages][Programming languages]] - - [[#general-purpose][General-purpose]] - - [[#imperative][Imperative]] - - [[#forth-layer][Forth layer]] - - [[#asm-layer][asm layer]] -- [[#source-control][Source control]] - - [[#git-layer][Git layer]] - - [[#github-layer][GitHub layer]] - - [[#perforce-layer][Perforce layer]] - - [[#version-control-layer][Version-Control layer]] + - [[#spell-checking][Spell Checking]] + - [[#syntax-checking][Syntax Checking]] +- [[#web-services][Web services]] + - [[#confluence][Confluence]] + - [[#evernote][Evernote]] + - [[#search-engine][Search Engine]] + - [[#twitter][Twitter]] + - [[#wakatime][Wakatime]] - [[#spacemacs][Spacemacs]] - [[#distributions][Distributions]] - [[#spacemacs-docker-distribution][spacemacs-docker distribution]] - [[#utilities][Utilities]] - - [[#spacemacs-purpose-layer][Spacemacs-purpose layer]] -- [[#tagging][Tagging]] - - [[#cscope-layer][Cscope layer]] - - [[#helm-gtags-layer][Helm Gtags layer]] + - [[#spacemacs-purpose][Spacemacs-purpose]] +- [[#music][Music]] + - [[#spotify][Spotify]] +- [[#miscellaneous][Miscellaneous]] + - [[#parinfer][Parinfer]] + - [[#copy-as-format][copy-as-format]] + - [[#ietf][ietf]] + - [[#multiple-cursors][multiple-cursors]] + - [[#nlinum][nlinum]] +- [[#fun][Fun]] + - [[#emoji][Emoji]] + - [[#games][Games]] + - [[#selectric][selectric]] + - [[#xkcd][xkcd]] +- [[#programming-languages][Programming languages]] + - [[#general-purpose][General-purpose]] + - [[#imperative][Imperative]] + - [[#forth][Forth]] + - [[#asm][asm]] +- [[#readers][Readers]] + - [[#dash][Dash]] + - [[#deft][Deft]] + - [[#elfeed][Elfeed]] + - [[#pdf][PDF]] + - [[#speed-reading][Speed Reading]] + - [[#epub][epub]] +- [[#fonts][Fonts]] + - [[#unicode-fonts][unicode-fonts]] +- [[#completion][Completion]] + - [[#auto-completion][Auto-completion]] + - [[#helm][Helm]] + - [[#ivy][Ivy]] + - [[#templates][Templates]] +- [[#operating-systems][Operating systems]] + - [[#nixos][NixOS]] + - [[#osx][OSX]] - [[#themes][Themes]] - - [[#colors-layer][Colors layer]] - - [[#themes-megapack-layer][Themes Megapack layer]] - - [[#theming-layer][Theming layer]] -- [[#tools][Tools]] - - [[#ansible-layer][Ansible layer]] - - [[#cfengine-layer][CFEngine layer]] - - [[#cmake-layer][CMake layer]] - - [[#chrome-layer][Chrome layer]] - - [[#dap-layer][DAP layer]] - - [[#docker-layer][Docker layer]] - - [[#finance-layer][Finance layer]] - - [[#geolocation-layer][Geolocation layer]] - - [[#lsp-layer][LSP layer]] - - [[#node-layer][Node layer]] - - [[#pandoc-layer][Pandoc layer]] - - [[#pass-layer][Pass layer]] - - [[#prodigy-layer][Prodigy layer]] - - [[#puppet-layer][Puppet layer]] - - [[#ranger-layer][Ranger layer]] - - [[#rebox-layer][Rebox layer]] - - [[#restclient-layer][Restclient layer]] - - [[#saltstack-layer][Saltstack layer]] - - [[#shell-layer][Shell layer]] - - [[#sphinx-layer][Sphinx layer]] - - [[#tern-layer][Tern layer]] - - [[#terraform-layer][Terraform layer]] - - [[#tmux-layer][Tmux layer]] - - [[#transmission-layer][Transmission layer]] - - [[#vagrant-layer][Vagrant layer]] - - [[#ycmd-layer][YCMD layer]] - - [[#bm-layer][bm layer]] - - [[#command-log-layer][command-log layer]] - - [[#debug-layer][debug layer]] - - [[#fasd-layer][fasd layer]] - - [[#imenu-list-layer][imenu-list layer]] - - [[#import-js-layer][import-js layer]] - - [[#nginx-layer][nginx layer]] - - [[#prettier-layer][prettier layer]] - - [[#systemd-layer][systemd layer]] - - [[#web-beautify-layer][web-beautify layer]] - - [[#xclipboard-layer][xclipboard layer]] -- [[#vim][Vim]] - - [[#evil-commentary-layer][Evil-commentary layer]] - - [[#evil-snipe-layer][Evil-snipe layer]] - - [[#vim-empty-lines-layer][Vim-empty-lines layer]] - - [[#vinegar-layer][Vinegar layer]] -- [[#web-services][Web services]] - - [[#confluence-layer][Confluence layer]] - - [[#evernote-layer][Evernote layer]] - - [[#search-engine-layer][Search Engine layer]] - - [[#twitter-layer][Twitter layer]] - - [[#wakatime-layer][Wakatime layer]] + - [[#colors][Colors]] + - [[#themes-megapack][Themes Megapack]] + - [[#theming][Theming]] +- [[#internationalization][internationalization]] + - [[#chinese][Chinese]] + - [[#japanese][Japanese]] + - [[#keyboard-layout][keyboard-layout]] - [[#readmeorg-files-that-need-proper-tags][README.org files that need proper tags]] - - [[#agda-layer][Agda layer]] + - [[#agda][Agda]] - [[#alda-layer][Alda Layer]] - - [[#asciidoc-layer][Asciidoc layer]] - - [[#autohotkey-layer][Autohotkey layer]] - - [[#bibtex-layer][BibTeX layer]] - - [[#c-layer][C# layer]] - - [[#cc-layer][C/C++ layer]] - - [[#csv-layer][CSV layer]] - - [[#clojure-layer][Clojure layer]] - - [[#coffeescript-layer][CoffeeScript layer]] - - [[#common-lisp-layer][Common Lisp layer]] - - [[#coq-layer][Coq layer]] - - [[#d-language-layer][D language layer]] - - [[#dhall-layer][Dhall layer]] - - [[#ess-r-layer][ESS (R) layer]] - - [[#elixir-layer][Elixir layer]] - - [[#elm-layer][Elm layer]] - - [[#emacs-lisp-layer][Emacs Lisp layer]] - - [[#erlang-layer][Erlang layer]] + - [[#asciidoc][Asciidoc]] + - [[#autohotkey][Autohotkey]] + - [[#bibtex][BibTeX]] + - [[#c][C#]] + - [[#cc][C/C++]] + - [[#csv][CSV]] + - [[#clojure][Clojure]] + - [[#coffeescript][CoffeeScript]] + - [[#common-lisp][Common Lisp]] + - [[#coq][Coq]] + - [[#d-language][D language]] + - [[#dhall][Dhall]] + - [[#ess-r][ESS (R)]] + - [[#elixir][Elixir]] + - [[#elm][Elm]] + - [[#emacs-lisp][Emacs Lisp]] + - [[#erlang][Erlang]] - [[#extra-languages][Extra Languages]] - - [[#f-layer][F# layer]] + - [[#f][F#]] - [[#factor-layer][Factor Layer]] - - [[#go-layer][GO layer]] - - [[#gpu-layer][GPU layer]] - - [[#groovy-layer][Groovy layer]] - - [[#html-layer][HTML layer]] - - [[#haskell-layer][Haskell layer]] - - [[#hy-layer][Hy layer]] - - [[#ipython-notebook-layer][IPython Notebook layer]] - - [[#idris-layer][Idris layer]] - - [[#jr-concurrent-programming-language-layer][JR Concurrent Programming Language layer]] - - [[#json-layer][JSON layer]] - - [[#java-layer][Java layer]] - - [[#javascript-layer][JavaScript layer]] - - [[#latex-layer][LaTeX layer]] - - [[#lua-layer][Lua layer]] - - [[#markdown-layer][Markdown layer]] - - [[#nim-layer][Nim layer]] - - [[#ocaml-layer][Ocaml layer]] - - [[#octave-layer][Octave layer]] - - [[#php-layer][PHP layer]] - - [[#pact-layer][Pact layer]] - - [[#perl5-layer][Perl5 layer]] - - [[#protocol-buffers-layer][Protocol Buffers layer]] - - [[#purescript-layer][Purescript layer]] - - [[#python-layer][Python layer]] - - [[#racket-layer][Racket layer]] - - [[#ruby-layer][Ruby layer]] - - [[#rust-layer][Rust layer]] - - [[#sml-layer][SML layer]] - - [[#sql-layer][SQL layer]] - - [[#scala-layer][Scala layer]] - - [[#scheme-layer][Scheme layer]] - - [[#semantic-web-layer][Semantic Web layer]] - - [[#shell-scripts-layer][Shell Scripts layer]] - - [[#swift-layer][Swift layer]] - - [[#typescript-layer][TypeScript layer]] - - [[#vimscript-language-layer][Vimscript language layer]] - - [[#windows-scripting-layer][Windows Scripting layer]] - - [[#yaml-layer][YAML layer]] - - [[#crystal-layer][crystal layer]] - - [[#dart-layer][dart layer]] - - [[#faust-layer][faust layer]] - - [[#graphviz-layer][graphviz layer]] - - [[#jsonnet-layer][jsonnet layer]] - - [[#julia-layer][julia layer]] - - [[#kotlin-layer][kotlin layer]] + - [[#go][GO]] + - [[#gpu][GPU]] + - [[#groovy][Groovy]] + - [[#html][HTML]] + - [[#haskell][Haskell]] + - [[#hy][Hy]] + - [[#ipython-notebook][IPython Notebook]] + - [[#idris][Idris]] + - [[#jr-concurrent-programming-language][JR Concurrent Programming Language]] + - [[#json][JSON]] + - [[#java][Java]] + - [[#javascript][JavaScript]] + - [[#latex][LaTeX]] + - [[#lua][Lua]] + - [[#markdown][Markdown]] + - [[#nim][Nim]] + - [[#ocaml][Ocaml]] + - [[#octave][Octave]] + - [[#php][PHP]] + - [[#pact][Pact]] + - [[#perl5][Perl5]] + - [[#protocol-buffers][Protocol Buffers]] + - [[#purescript][Purescript]] + - [[#python][Python]] + - [[#racket][Racket]] + - [[#ruby][Ruby]] + - [[#rust][Rust]] + - [[#sml][SML]] + - [[#sql][SQL]] + - [[#scala][Scala]] + - [[#scheme][Scheme]] + - [[#semantic-web][Semantic Web]] + - [[#shell-scripts][Shell Scripts]] + - [[#swift][Swift]] + - [[#typescript][TypeScript]] + - [[#vimscript-language][Vimscript language]] + - [[#windows-scripting][Windows Scripting]] + - [[#yaml][YAML]] + - [[#crystal][crystal]] + - [[#dart][dart]] + - [[#faust][faust]] + - [[#graphviz][graphviz]] + - [[#jsonnet][jsonnet]] + - [[#julia][julia]] + - [[#kotlin][kotlin]] - [[#nyan-mode][nyan-mode]] - - [[#perl6-layer][perl6 layer]] - - [[#plantuml-layer][plantuml layer]] - - [[#prolog-layer][prolog layer]] - - [[#restructuredtext-layer][reStructuredText layer]] + - [[#perl6][perl6]] + - [[#plantuml][plantuml]] + - [[#prolog][prolog]] + - [[#restructuredtext][reStructuredText]] - [[#spacemacs-distribution][spacemacs distribution]] - [[#spacemacs-base-distribution][spacemacs-base distribution]] - [[#spacemacs-bootstrap-distribution][spacemacs-bootstrap distribution]] - - [[#spacemacs-completion-layer][spacemacs-completion layer]] + - [[#spacemacs-completion][spacemacs-completion]] - [[#spacemacs-defaults][spacemacs-defaults]] - - [[#spacemacs-editing-layer][spacemacs-editing layer]] - - [[#spacemacs-editing-visual-layer][spacemacs-editing-visual layer]] - - [[#spacemacs-evil-layer][spacemacs-evil layer]] - - [[#spacemacs-language-layer][spacemacs-language layer]] - - [[#spacemacs-layouts-layer][spacemacs-layouts layer]] - - [[#spacemacs-misc-layer][spacemacs-misc layer]] - - [[#spacemacs-modeline-layer][spacemacs-modeline layer]] - - [[#spacemacs-navigation-layer][spacemacs-navigation layer]] - - [[#spacemacs-org-layer][spacemacs-org layer]] - - [[#spacemacs-project-layer][spacemacs-project layer]] - - [[#spacemacs-visual-layer][spacemacs-visual layer]] - - [[#yang-layer][yang layer]] - -* Chats -** ERC layer -[[file:+chat/erc/README.org][+chat/erc/README.org]] - -Layer for [[http://www.emacswiki.org/emacs/ERC][ERC IRC chat]]. - -Features: -- Highlight nicks (using [[https://github.com/leathekd/erc-hl-nicks][erc-hl-nicks]]) -- Image inline support (using [[https://github.com/kidd/erc-image.el][erc-image]]) -- Logging to =~/.emacs.d/.cache/erc-logs= and =ViewLogMode= for viewing logs - (using [[https://github.com/Niluge-KiWi/erc-view-log][erc-view-log]]) -- YouTube videos Thumbnails inline (using [[https://github.com/yhvh/erc-yt][erc-yt]]) -- Social Graph for ERC messages (using [[https://github.com/vibhavp/erc-social-graph][erc-social-graph]]) -- Optional SASL authentication via the variable =erc-enable-sasl-auth= - (using [[http://emacswiki.org/emacs/ErcSASL][erc-sasl]]) -- D-BUS notifications via the variable =erc-enable-notifications= -- Completion of Emojis using [[https://github.com/dunn/company-emoji][company-emoji]] (still needs a way of showing, either - using the =emoji= layer or having a proper font) :clap: - -** Jabber layer -[[file:+chat/jabber/README.org][+chat/jabber/README.org]] - -This layer adds support for the Jabber (XMPP) client for Emacs - -Features: -- Use Jabber without having to leave Spacemacs - -** RCIRC layer -[[file:+chat/rcirc/README.org][+chat/rcirc/README.org]] - -This layer provide support for [[http://www.gnu.org/software/emacs/manual/html_mono/rcirc.html][rcirc]] with optional support for authinfo -and ZNC. - -Features: -- Store channel logs into =~/.emacs.d/.cache/rcirc-logs/= -- Support for credentials stored in =~/.authinfo.gpg= (need to have gnutls) -- Support ZNC support (with optional =~/.authinfo.gpg=) -- Colored nicknames -- Real-time change when people use =s/foo/bar/= in chat -- Completion of Emojis using [[https://github.com/dunn/company-emoji][company-emoji]] (still needs a way of showing, either - using the =emoji= layer or having a proper font) :clap: - -** Slack layer -[[file:+chat/slack/README.org][+chat/slack/README.org]] - -This layer provides an interface to the Slack chat service via the emacs-slack -package. Where possible, this layer aims to reuse key bindings from the IRC -packages in Spacemacs. - -Features: -- Real time messaging with [[https://github.com/ahyatt/emacs-websocket][emacs-websocket]] -- Connect to multiple slack instances -- Notifications with [[https://github.com/jwiegley/alert][alert.el]] + - [[#spacemacs-editing][spacemacs-editing]] + - [[#spacemacs-editing-visual][spacemacs-editing-visual]] + - [[#spacemacs-evil][spacemacs-evil]] + - [[#spacemacs-language][spacemacs-language]] + - [[#spacemacs-layouts][spacemacs-layouts]] + - [[#spacemacs-misc][spacemacs-misc]] + - [[#spacemacs-modeline][spacemacs-modeline]] + - [[#spacemacs-navigation][spacemacs-navigation]] + - [[#spacemacs-org][spacemacs-org]] + - [[#spacemacs-project][spacemacs-project]] + - [[#spacemacs-visual][spacemacs-visual]] + - [[#yang][yang]] +- [[#pair-programming][Pair programming]] + - [[#floobits][Floobits]] +- [[#e-mail][E-mail]] + - [[#gnus][Gnus]] + - [[#mu4e][Mu4e]] + - [[#notmuch][Notmuch]] +- [[#source-control][Source control]] + - [[#git][Git]] + - [[#github][GitHub]] + - [[#perforce][Perforce]] + - [[#version-control][Version-Control]] +- [[#file-trees][File trees]] + - [[#neotree][Neotree]] + - [[#treemacs][Treemacs]] +- [[#chats][Chats]] + - [[#erc][ERC]] + - [[#jabber][Jabber]] + - [[#rcirc][RCIRC]] + - [[#slack][Slack]] +- [[#tools][Tools]] + - [[#ansible][Ansible]] + - [[#cfengine][CFEngine]] + - [[#cmake][CMake]] + - [[#chrome][Chrome]] + - [[#dap][DAP]] + - [[#docker][Docker]] + - [[#finance][Finance]] + - [[#geolocation][Geolocation]] + - [[#lsp][LSP]] + - [[#node][Node]] + - [[#pandoc][Pandoc]] + - [[#pass][Pass]] + - [[#prodigy][Prodigy]] + - [[#puppet][Puppet]] + - [[#ranger][Ranger]] + - [[#rebox][Rebox]] + - [[#restclient][Restclient]] + - [[#saltstack][Saltstack]] + - [[#shell][Shell]] + - [[#sphinx][Sphinx]] + - [[#tern][Tern]] + - [[#terraform][Terraform]] + - [[#tmux][Tmux]] + - [[#transmission][Transmission]] + - [[#vagrant][Vagrant]] + - [[#ycmd][YCMD]] + - [[#bm][bm]] + - [[#command-log][command-log]] + - [[#debug][debug]] + - [[#fasd][fasd]] + - [[#imenu-list][imenu-list]] + - [[#import-js][import-js]] + - [[#nginx][nginx]] + - [[#prettier][prettier]] + - [[#systemd][systemd]] + - [[#web-beautify][web-beautify]] + - [[#xclipboard][xclipboard]] +- [[#frameworks][Frameworks]] + - [[#django][Django]] + - [[#react][React]] + - [[#ruby-on-rails][Ruby on Rails]] + - [[#emberjs][emberjs]] + - [[#phoenix][phoenix]] +- [[#tagging][Tagging]] + - [[#cscope][Cscope]] + - [[#helm-gtags][Helm Gtags]] +- [[#vim][Vim]] + - [[#evil-commentary][Evil-commentary]] + - [[#evil-snipe][Evil-snipe]] + - [[#vim-empty-lines][Vim-empty-lines]] + - [[#vinegar][Vinegar]] +- [[#emacs][Emacs]] + - [[#better-defaults][Better Defaults]] + - [[#ibuffer][IBuffer]] + - [[#org][Org]] + - [[#semantic][Semantic]] + - [[#smex][Smex]] + - [[#typography][Typography]] * Checkers -** Spell Checking layer +** Spell Checking [[file:+checkers/spell-checking/README.org][+checkers/spell-checking/README.org]] This layer provides spell checking capabilities to Spacemacs. @@ -293,7 +239,7 @@ Features: - Optional correction popups, controlled by =enable-flyspell-auto-completion= variable. - [[https://github.com/nschum/auto-dictionary-mode][Auto dictionary mode]] for some languages. -** Syntax Checking layer +** Syntax Checking [[file:+checkers/syntax-checking/README.org][+checkers/syntax-checking/README.org]] This layer adds on the fly syntax checking to all supported language layers. @@ -302,1260 +248,8 @@ Features: - Support for automatic syntax checking with [[http://www.flycheck.org/][Flycheck]] for various language layers - Tooltip syntax errors with =popwin= -* Completion -** Auto-completion layer -[[file:+completion/auto-completion/README.org][+completion/auto-completion/README.org]] - -This layer adds auto-completion to all supported language layers. - -Features: -- Support for code completion with [[http://company-mode.github.io/][company]] or [[https://github.com/auto-complete/auto-complete][auto-complete]] for various language layers -- Frequency-based suggestions via [[https://github.com/company-mode/company-statistics][company-statistics]] for =company= -- Integration with [[https://github.com/capitaomorte/yasnippet][yasnippet]] and [[https://github.com/abo-abo/auto-yasnippet][auto-yasnippet]] -- Automatic configuration of [[https://www.emacswiki.org/emacs/HippieExpand][hippie-expand]] - -** Helm layer -[[file:+completion/helm/README.org][+completion/helm/README.org]] - -This layer enables Helm everywhere in Spacemacs. The alternative to this -layer is the Ivy layer which brings the same level of integration as Helm. - -These completion systems are the central control towers of Spacemacs, they are -used to manage buffers, projects, search results, configuration layers, toggles -and more... - -Mastering your choice of completion system will make you a Spacemacs power user. - -Features: -- Project wide =grep= like text search via =helm-dir-smart-do-search= -- Project wide text replacements using =helm-edit-mode= -- Buffer wide dynamic text search via =helm-swoop= -- Fuzzy matching for most =helm-sources= -- Detailed configuration parameters for helms appearance -- Intuitive =transient state= - -** Ivy layer -[[file:+completion/ivy/README.org][+completion/ivy/README.org]] - -This layer enables Ivy for completion. It will replace the default completion by -[[https://github.com/emacs-helm/helm][Helm]]. - -These completion systems are the central control towers of Spacemacs, they are -used to manage buffers, projects, search results, configuration layers, toggles -and more... - -Mastering your choice of completion system will make you a Spacemacs power user. - -Features: -- Project wide =grep= like text search via =search-auto= -- Project wide text replacements using =counsel-imenu= -- Buffer wide dynamic text search via =swiper= -- Detailed configuration parameters for ivy appearance -- Intuitive =transient state= -- Advanced buffer information with =ivy-rich= - -** Templates layer -[[file:+completion/templates/README.org][+completion/templates/README.org]] - -This layer provides templates to Spacemacs. A template consists of text that is -automatically inserted into a new file when it is opened. This is done via -[[https://github.com/mineo/yatemplate][yatemplate]], which leverages [[https://github.com/joaotavora/yasnippet][yasnippet]]. - -Features: -- Auto-insert snippets when creating specific new files. - -* E-mail -** Gnus layer -[[file:+email/gnus/README.org][+email/gnus/README.org]] - -This layer integrates a general purpose email/newsgroup client into Spacemacs. - -Features: -- Support for reading RSS feeds, newsgroups and mails directly within emacs via [[http://www.gnus.org/][Gnus]]. -- Support for beautiful HTML mails generated from any =org= buffer. -- Support for credential managment via [[https://gnupg.org/][GnuPG]]. - -** Mu4e layer -[[file:+email/mu4e/README.org][+email/mu4e/README.org]] - -This layer adds support for the Mu4e email client. - -Features: -- Search, read, reply, move, and delete email. -- Search-based: no folders, only queries. -- UI optimized for speed: quick keystrokes for common actions. -- Very extendable and costumizable. -- Integration with Helm. -- Maildir summary using [[https://github.com/agpchil/mu4e-maildirs-extension][mu4e-mailidrs-extension]] -- Notifications using [[https://github.com/iqbalansari/mu4e-alert][mu4e-alert]] - -** Notmuch layer -[[file:+email/notmuch/README.org][+email/notmuch/README.org]] - -Notmuch offers a fast, global-search and tag-based email system to -use within your text editor or in a terminal. - -This layer integrates notmuch emacs package into spacemacs. - -Features: -- Email searching -- Email tagging - -* File trees -** Neotree layer -[[file:+filetree/neotree/README.org][+filetree/neotree/README.org]] - -This layer setups a file tree navigator buffer using Neotree (replacing the Treemacs layer). - -Features: -- intuitive evil key bindings integration -- supports multiple themes -- transient state by pressing on ~?~ -- version-control integration - -** Treemacs layer -[[file:+filetree/treemacs/README.org][+filetree/treemacs/README.org]] - -This layer sets up a file navigation and project explorer side-window via [[https://github.com/Alexander-Miller/treemacs][Treemacs]]. - -Features: - -An detailed overview over Treemacs’ available features is available in [[https://github.com/Alexander-Miller/treemacs#detailed-feature-list][its -readme]]. In a short summary Treemacs offers the following: -- Simple and powerful navigation and ability to detail exactly how and where a - file should be opened -- Good looking png icons. -- Display of multiple file trees organized as projects residing in a workspace. -- Ability to show tags contained in files. Tags are provided by imenu, so - nearly every filetype is supported. -- Mouse interface for single and double left clicks in line with modern GUI standards. - (Clicking on an icon will also display a file’s tags) -- Locational awareness: commands like ~find-file~ or ~magit-status~ will use the location - of the node at point (with $HOME as fallback) -- Optionally fontifying files based on their git status. -- Optionally collapsing single-dir-child directories into one. -- Doing both asynchronously for an imperceptible performance cost. -- Optional =follow-mode= to automatically focus the currently selected file. -- Optional =filewatch-mode= to automatically refresh the view after (and only - after) changes to the shown filesystem. - -* Fonts -** unicode-fonts layer -[[file:+fonts/unicode-fonts/README.org][+fonts/unicode-fonts/README.org]] - -This layer adds support for the [[https://github.com/rolandwalker/unicode-fonts][unicode-fonts]] package. It is recommended to -install the fonts listed in the [[https://github.com/rolandwalker/unicode-fonts#quickstart][Quickstart]] section of the unicode-fonts README. - -Features: -- Display unicode glyphs using the best available font. -- Easily override glyphs or sections of glyphs. -- Display color emoji on both the Mac port version of Emacs and emacs-plus (with - =unicode-fonts-force-multi-color-on-mac= set to non nil). - -* Emacs -** Better Defaults layer -[[file:+emacs/better-defaults/README.org][+emacs/better-defaults/README.org]] - -This layer enhances the default commands of Emacs and is primarily intended to -be used with the =emacs= editing style as it does not change anything in the Vim -key bindings. - -However the =emacs= editing style is not required, you can still use this layer -while you are using the =vim= editing style if you have some kind of mixed -style. - -The commands defined in this layer are taken from various sources like [[https://github.com/bbatsov/prelude][Prelude]]. - -Features: -- Smart line navigation: Subsequent presses of ~C-a~ toggles between the beginning of the line and the first non-whitespace character. Similarly, subsequent presses of ~C-e~ will toggle between the end of the code and the end of the comments. -- =spacemacs/backward-kill-word-or-region=: A combination of =kill-region= and =backward-kill-word=, depending on whether there is an active region. If there’s an active region kill that. If not kill the preceding word. -- Fill or unfill paragraph: Pressing ~M-q~ for the first time fills current paragraph and pressing ~M-q~ for the second time unfills it. Note that some modes override this key binding so it’s not available everywhere. Due to implementation details unfilling doesn’t work when called twice via ~M-x~. - -** IBuffer layer -[[file:+emacs/ibuffer/README.org][+emacs/ibuffer/README.org]] - -This layer configures Emacs IBuffer for Spacemacs. - -Features: -- Grouping of buffers by major-modes -- Grouping of buffers by projects - -** Org layer -[[file:+emacs/org/README.org][+emacs/org/README.org]] - -This layer enables [[http://orgmode.org/][org mode]] for Spacemacs. - -Features: -- Vim inspired key bindings are provided by [[https://github.com/Somelauw/evil-org-mode][evil-org-mode]] -- Nicer bullet via [[https://github.com/sabof/org-bullets][org-bullets]] -- A [[https://cirillocompany.de/pages/pomodoro-technique][pomodoro method]] integration via [[https://github.com/lolownia/org-pomodoro][org-pomodoro]] -- Presentation mode via [[https://github.com/rlister/org-present][org-present]] -- Insertion of images via [[https://github.com/abo-abo/org-download][org-download]] -- Project-specific TODOs via [[https://github.com/IvanMalison/org-projectile][org-projectile]] - -** Semantic layer -[[file:+emacs/semantic/README.org][+emacs/semantic/README.org]] - -CEDET is a *C*ollection of *E*macs *D*evelopment *E*nvironment *T*ools written -with the end goal of creating an advanced development environment in Emacs. -CEDET includes common features such as intelligent completion, source code -navigation, project management, code generation with templates. CEDET also -provides a framework for working with programming languages; support for new -programming languages can be added and use CEDET to provide IDE-like features. -This framework is called Semantic. - -Semantic is a package that provides a framework for writing parsers. Parsing is -a process of analyzing source code based on programming language syntax. The -packages relies on Semantic for analyzing source code and uses its results to -perform smart code refactoring that based on code structure of the analyzed -language, instead of plain text structure. Semantic is the core of CEDET. - -Features: -- Display function or variable definition at the bottom. -- Display current function cursor is in at the top. See - [[https://github.com/tuhdo/semantic-stickyfunc-enhance][this page]] for demos in some programming languages. -- Support common C/C++ refactoring with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]]. See - [[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos.org][this page]] for demonstration of refactoring features. -- Support Lisp source code formatting with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]]. See - [[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos-elisp.org][this page]] for demonstration of Lisp formatting features. - -** Smex layer -[[file:+emacs/smex/README.org][+emacs/smex/README.org]] - -This layer provides a more traditional alternative to =helm-M-x= based on =ido=. - -Features: -- Provides an alternative way for =helm-M-x= based on =ido= and [[https://github.com/nonsequitur/smex][smex]] - -** Typography layer -[[file:+emacs/typography/README.org][+emacs/typography/README.org]] - -This layer provides support for typographic text editing in Spacemacs. - -Features: -- Modes to automatically insert and cycle among typographic characters -- [[https://github.com/jorgenschaefer/typoel][Typo Mode]] automatically inserts and cycles among typographic Unicode - characters on some keys. -- Tildify Mode automatically inserts non-breaking spaces where - required (Only available on Emacs 25). - -* Frameworks -** Django layer -[[file:+frameworks/django/README.org][+frameworks/django/README.org]] - -This layer adds support for the Python web framework [[https://www.djangoproject.com/][Django]] to Spacemacs. - -Features: -- Test execution directly from emacs -- Starting/stopping of the Django test server -- Starting of an interactive Python shell in the current project for debugging -- Fixed commands to open various Django specific settings files -- Automatic deployment with [[http://www.fabfile.org][Fabric]] directly from emacs -- Control of [[http://south.aeracode.org/][South]] database migration tool - -** React layer -[[file:+frameworks/react/README.org][+frameworks/react/README.org]] - -ES6 and JSX ready configuration layer for React -It will automatically recognize =.jsx= files and files with =react= imported. - -Features: -- on-the-fly syntax checking -- proper syntax highlight and indentation with jsx -- backend support for autocompletion as in rjsx-mode -- jsfmt automatic formatting -- js2-refactor -- js-doc - -** Ruby on Rails layer -[[file:+frameworks/ruby-on-rails/README.org][+frameworks/ruby-on-rails/README.org]] - -This layer aims at providing support for the Ruby on Rails framework. - -Features: -- Quick file navigation with with [[https://github.com/asok/projectile-rails][projectile-rails]] -- Run server -- Run generators -- Rake runner -- Interactive Rails console - -** emberjs layer -[[file:+frameworks/emberjs/README.org][+frameworks/emberjs/README.org]] - -This enables helpers for working with Ember.js projects. - -This also includes [[https://github.com/ronco/ember-yasnippets.el][ember-yasnippets]]. See the README for ember-yansippets for the snippet keys. - -To use this, you need to add add a =.dir-locals.el= file with the following in the root of your ember project: - -#+BEGIN_SRC emacs-lisp - ((nil . ((mode . ember)))) -#+END_SRC - -If you do not wish to do the following, you may also just do =M-x ember-mode=, however it will make things easier. - -Additionally, temporary backup, autosave, and lockfiles interfere with broccoli watcher, so they need to either be moved out of the way or disabled. - -Add the following to your =dotspacemacs/user-config=: - -#+BEGIN_SRC emacs-lisp - (setq backup-directory-alist `((".*" . ,temporary-file-directory))) - (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) - (setq create-lockfiles nil) -#+END_SRC - -Features: -- Ability to easily switch between various files -- Key bindings for generators and also easily revert generator actions -- Ability to build, start server, and run tests - -** phoenix layer -[[file:+frameworks/phoenix/README.org][+frameworks/phoenix/README.org]] - -This layer adds key bindings for [[https://github.com/tonini/alchemist.el][Alchemist]]’s already built in phoenix mode. - -Features: -- Key bindings for navigation to files - -* Fun -** Emoji layer -[[file:+fun/emoji/README.org][+fun/emoji/README.org]] - -This layer adds support for Emoji emoticons from [[https://www.webpagefx.com/tools/emoji-cheat-sheet/][emoji-cheat-sheet]]. - -Features: -- Browse Emoji in a dedicated buffer -- Display Emoji images in buffer -- Insert one or several Emoji with an helm front-end -- Completion of Emojis using [[https://github.com/dunn/company-emoji][company-emoji]] - -** Games layer -[[file:+fun/games/README.org][+fun/games/README.org]] - -This layer allows you to play evilified games in spacemacs. - -Features: -- 2048-game -- Pacmacs (Pacman for Emacs) -- Sudoku -- Tetris -- Typit - -** selectric layer -[[file:+fun/selectric/README.org][+fun/selectric/README.org]] - -This layer makes your Emacs sound like an IBM Selectric typewriter, for those -moments when your loud, clicky mechanical keyboard is not at hand, yet, you’d -still wish to enjoy the sound. - -Features: -- Brings back fond memories about your first programming job where you started - with that big mechanical keyboard and the small monochrom display working on - the latest IBM Iseries server. - -** xkcd layer -[[file:+fun/xkcd/README.org][+fun/xkcd/README.org]] - -This layer adds a [[http://xkcd.com/][xkcd]] navigation mode using [[https://github.com/vibhavp/emacs-xkcd][emacs-xkcd]]. - -Features: -- Load a random xkcd -- Show the text in the modeline -- Open explanation and current comic in browser -- Cache the comics in =.cache/xkcd= - -* internationalization -** Chinese layer -[[file:+intl/chinese/README.org][+intl/chinese/README.org]] - -This layer adds support for traditional Chinese script to Spacemacs. - -Features: -- Support for the [[https://en.wikipedia.org/wiki/Pinyin][Pinyin(拼音)]] input method via [[https://github.com/tumashu/chinese-pyim][chinese-pyim]]. -- Support for the [[https://en.wikipedia.org/wiki/Wubi_method][Wubi(五笔)]] input method via [[https://github.com/andyque/chinese-wbim][chinese-wbim]]. -- Integration of the native input method framework [[https://en.wikipedia.org/wiki/Fcitx][fcitx]] via [[https://github.com/cute-jumper/fcitx.el][cute-jumper/fcitx.el]]. -- Integration of the [[https://en.wikipedia.org/wiki/Youdao][Youdao(有道) Dictionary]] via [[https://github.com/xuchunyang/youdao-dictionary.el][youdao-dictionary]]. -- Support for file searches in =dired= using Chinese Pinyin characters via [[https://github.com/redguardtoo/find-by-pinyin-dired][find-by-pinyin-dired]]. -- Support for jumping to Chinese Pinyin characters with =ace-jump-mode= via [[https://github.com/cute-jumper/ace-pinyin][ace-pinyin]]. -- Support for conversion between simplified and traditional Chinese texts via [[https://github.com/gucong/emacs-chinese-conv/][chinese-conv]]. -- Automatic visual separation of Chinese and Latin characters via [[https://github.com/coldnew/pangu-spacing][coldnew/pangu-spacing]]. -- Automatic joining of consecutive Chinese lines into a single long line without unwanted space when exporting org-mode to html. - -** Japanese layer -[[file:+intl/japanese/README.org][+intl/japanese/README.org]] - -This Layer adds Japanese related packages. - -Features: -- [[https://github.com/kenjimyzk/evil-tutor-ja][evil-tutor-ja]]: Japanese Vimtutor adapted to Emacs+Evil and wrapped in a major mode -- [[https://github.com/emacs-jp/migemo][migemo]]: Japanese incremental search through dynamic pattern expansion -- [[https://github.com/emacs-helm/helm/wiki/Migemo][helm-migemo-mode]]: helm with migemo -- [[https://github.com/momomo5717/avy-migemo/blob/master/README.jp.org][avy-migemo]]: avy with migemo -- [[https://github.com/hsaito/ddskk][ddskk]]: Simple Kana to Kanji conversion program (SKK) -- [[https://github.com/emacs-jp/japanese-holidays][japanese-holidays]]: calendar functions for the Japanese calendar -- [[https://github.com/coldnew/pangu-spacing][pangu-spacing]]: emacs minor-mode to add space between Japanese and English - characters. -- Join consecutive Japanese lines into a single long line without unwanted space - when exporting org-mode to html. - -** keyboard-layout layer -[[file:+intl/keyboard-layout/README.org][+intl/keyboard-layout/README.org]] - -This layer configures some key bindings in Spacemacs, to make it compatible with -keyboard layouts that differs from the traditional =en-us= =QWERTY= layout. - -Features: -- Support alernative keyboard layouts within spacemacs -- Remap navigation commands to the homerow of your chosen layout -- Remap missing commands automatically to elsewhere in the layout - -* Miscellaneous -** Parinfer layer -[[file:+misc/parinfer/README.org][+misc/parinfer/README.org]] - -This layer provides an implementation of [[https://shaunlebron.github.io/parinfer/][parinfer]], a lisp editing paradigm that -controls indentation based on parentheses or vice versa. - -Features: -- Automatic managment of parenthesis in clojure, emacs lisp, common-lisp and scheme following the parinfer editing paradigm. - -** copy-as-format layer -[[file:+misc/copy-as-format/README.org][+misc/copy-as-format/README.org]] - -This layer adds support for [[https://github.com/sshaw/copy-as-format][copy-as-format]]. - -Features: -- Function to copy buffer locations as GitHub/Slack/JIRA/HipChat/... formatted code - -** ietf layer -[[file:+misc/ietf/README.org][+misc/ietf/README.org]] - -The =IETF= layer collects various useful packages for participating in the -Internet Engineering Task Force ([[https://www.ietf.org]]). - -Features: -- Fetching and opening IETF documents. -- Viewing IETF documents. -- Writing IETF documents. - -** multiple-cursors layer -[[file:+misc/multiple-cursors/README.org][+misc/multiple-cursors/README.org]] - -Features: -- support for multiple cursors. - -** nlinum layer -[[file:+misc/nlinum/README.org][+misc/nlinum/README.org]] - -This layer provides various styles of line numbering in Spacemacs. It replaces -=linum= and =linum-relative= with the improved =nlinum= and =nlinum-relative= -packages. - -Please note that on Emacs 26 and newer, this layer also replaces the new native -line numbers mode (=display-line-numbers-mode=), and because of that it is not -recommended to use =nlinum= layer on Emacs 26 or newer. - -Features: -- Support for classic ascending line numbering. -- Support for line numbering relative to the current cursor position. - -* Music -** Spotify layer -[[file:+music/spotify/README.org][+music/spotify/README.org]] - -This layer integrates an online music service into Spacemacs. - -Features: -- Support for listening to music from within Emacs via [[https://www.spotify.com][Spotify]]. - -* Operating systems -** NixOS layer -[[file:+os/nixos/README.org][+os/nixos/README.org]] - -This layer adds tools for better integration of emacs in NixOS. - -Features: -- Nix-mode using [[https://github.com/NixOS/nix-mode][nix-mode]] -- Auto-completion of NixOS Options using [[https://github.com/travisbhartwell/nix-emacs/blob/master/company-nixos-options.el][company-nixos-options]] -- Helm Lookup for NixOS Options [[https://github.com/travisbhartwell/nix-emacs/blob/master/helm-nixos-options.el][helm-nixos-options]] - -** OSX layer -[[file:+os/osx/README.org][+os/osx/README.org]] - -Spacemacs is not just emacs+vim. It can have OSX key bindings too! This layer -globally defines common OSX key bindings. - -Features: -- ~⌘~ is set to ~hyper~ and ~⌥~ is set to ~meta~ -- In =dired= use =gls= instead of =ls= -- Fix separator colors of Spaceline mode-line - -* Pair programming -** Floobits layer -[[file:+pair-programming/floobits/README.org][+pair-programming/floobits/README.org]] - -This layer adds support for the peer programming tool [[https://github.com/Floobits/floobits-emacs][floobits]] to Spacemacs. - -Features: -- Loading of floobits configuration files with fixed commands -- Creation of floobits workspaces and populating it with content -- Marking of the current cursor position for all users within the current workspace -- Follow recent changes by other users - -* Readers -** Dash layer -[[file:+readers/dash/README.org][+readers/dash/README.org]] - -This layer integrates offline api browsers into emacs. It provides one for OS X, Linux and Windows. - -Features: -- Searching for word at point in offline api browser’s UI. -- Integration of offline api browser search results in helm and ivy. -- Support for [[https://kapeli.com/dash][dash]] offline api browser for OS X. -- Support for [[https://zealdocs.org/][zeal]] offline api browser for Linux. - -** Deft layer -[[file:+readers/deft/README.org][+readers/deft/README.org]] - -This layer adds a search driven note taking system into Spacemacs. - -Features: -- Browsing and creating notes with a powerfull search function via [[http://jblevins.org/projects/deft/][Deft]]. -- Integration of =org-mode= as note editor. -- Configurable list of extensions to recognize as notes. - -** Elfeed layer -[[file:+readers/elfeed/README.org][+readers/elfeed/README.org]] - -This layer integrates a web feed reader into spacemacs. - -Features: -- Support for reading RSS and Atom feeds directly within emacs via [[https://github.com/skeeto/elfeed][Elfeed]]. -- Support for managing feeds via org files supplied by [[https://github.com/remyhonig/elfeed-org][elfeed-org]]. -- Support for displaying feed database content in the browser via [[https://github.com/skeeto/elfeed#web-interface][web interface]]. - -** PDF layer -[[file:+readers/pdf/README.org][+readers/pdf/README.org]] - -This layer enables support for PDF with the [[https://github.com/politza/pdf-tools][pdf-tools]] package. - -According to the official repository: - -#+BEGIN_QUOTE - “PDF Tools is, among other things, a replacement of DocView for PDF files. The - key difference is, that pages are not pre-rendered by e.g. ghostscript and - stored in the file-system, but rather created on-demand and stored in memory.” -#+END_QUOTE - -Features: -- Searching and slicing with =occur=. -- Show document headings in outline buffer. -- Manipulate annotations. -- Fit PDF to screen. - -** Speed Reading layer -[[file:+readers/speed-reading/README.org][+readers/speed-reading/README.org]] - -A speed reading mode for Emacs. - -Features: -- Support for =speed-reading= of arbitrary texts - -** epub layer -[[file:+readers/epub/README.org][+readers/epub/README.org]] - -This layer provides support for reading EPUB-formatted eBooks in Spacemacs using the -excellent [[https://github.com/wasamasa/nov.el][nov.el]] package. - -Features: -- Basic navigation (jump to TOC, previous/next chapter) -- Remembering and restoring the last read position -- Jump to next chapter when scrolling beyond end -- Renders EPUB2 (.ncx) and EPUB3 (