99 lines
3.0 KiB
Org Mode
99 lines
3.0 KiB
Org Mode
#+TITLE: .emacs.d
|
|
#+AUTHOR: Wojciech Kozlowski
|
|
#+EMAIL: wk@wojciechkozlowski.eu
|
|
|
|
* Emacs version
|
|
|
|
This configuration is maintained only for the Emacs master branch version. It
|
|
may work on some older version or you may have to remove the features that
|
|
rely on the newer Emacs versions. Currently, this configuration uses a few
|
|
features from Emacs 26 and 27.
|
|
|
|
To fully leverage the features used in this configuration, Emacs must be
|
|
compiled with the right options.
|
|
|
|
** Native JSON
|
|
|
|
This configuration uses ~lsp-mode~ for some programming languages which is
|
|
much faster if Emacs is compiled with native JSON support. Emacs will by
|
|
default compile with native JSON support if the ~jansson~ library is present
|
|
(including headers).
|
|
|
|
** Vterm
|
|
|
|
*** Dynamic modules ~vterm~ uses dynamic modules. In order to enable dynamic modules, Emacs must
|
|
be compiled with the ~--with-modules~ option (not enabled by default).
|
|
|
|
*** Pre-requisites ~vterm~ requires =cmake= and =libtool= to be installed.
|
|
|
|
*** Directory tracking
|
|
|
|
To enable directory tracking in vterm, put this in =.zshrc=
|
|
|
|
#+BEGIN_SRC
|
|
function chpwd() {
|
|
print -Pn "\e]51;$(pwd)\e\\";
|
|
}
|
|
#+END_SRC
|
|
|
|
* Installation
|
|
|
|
Clone this repository into your home directory:
|
|
|
|
#+BEGIN_SRC
|
|
$ git clone https://github.com/Wojtek242/.emacs.d ~/.config/emacs
|
|
#+END_SRC
|
|
|
|
This configuration uses the [[https://github.com/adobe-fonts/source-code-pro][Source Code Pro]] font. If you do not have it
|
|
installed and it isn't available through your distribution you can install
|
|
the font by running
|
|
|
|
#+BEGIN_SRC
|
|
$ git clone https://github.com/adobe-fonts/source-code-pro.git --branch release ~/.local/source-code-pro
|
|
$ sudo cp ~/.local/source-code-pro/OTF/*.otf /usr/local/share/fonts
|
|
#+END_SRC
|
|
|
|
Once the initial setup completes, you also need to run the following in Emacs
|
|
|
|
#+BEGIN_SRC
|
|
M-x all-the-icons-install-fonts
|
|
#+END_SRC
|
|
|
|
* External Support for Programming Languages
|
|
|
|
This configuration relies uses ~lsp-mode~ for language-specific features.
|
|
However, in order to use the LSP features, you need to have the appropriate
|
|
language servers installed.
|
|
|
|
** C/C++
|
|
|
|
Emacs will automatically download ~clangd~ if it isn't installed already.
|
|
|
|
** Python
|
|
|
|
Emacs will automatically download ~pyright~ if it isn't installed already. Note that this
|
|
requires ~npm~ to be installed.
|
|
|
|
** Rust
|
|
|
|
Install ~rust-analyzer~.
|
|
|
|
* Package Management
|
|
|
|
This =.emacs.d= uses its own small framework for package management located in
|
|
the [[emodule][emodule]] directory. Its operation is heavily inspired by [[http://spacemacs.org/][Spacemacs]], but is
|
|
much smaller with fewer features and thus simpler. For instructions, see its
|
|
own [[emodule/README.org][README file]].
|
|
|
|
* Theme
|
|
|
|
The theme in use started with the =underwater= theme and has been heavily
|
|
modified, with inspiration from the [[http://spacemacs.org/][Spacemacs]] theme, to add support for all
|
|
new faces introduced by the installed packages.
|
|
|
|
The theme files are located in the [[themes][themes]] directory.
|