This repository has been archived on 2022-11-18. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2022-03-17 21:58:03 +01:00
emodule Correctly handle installed packages and custom file 2021-09-24 14:53:57 +02:00
external Add antlr mode 2020-04-05 23:47:03 +02:00
init-buffer Change initial buffer name 2020-04-09 14:11:37 +02:00
modules Remove unused references to org files 2022-03-17 21:58:03 +01:00
snippets/org-mode Add C source snippet to org-mode 2019-07-27 21:10:08 +02:00
themes Update theme after helm update 2020-09-09 18:43:02 +02:00
.gitignore Update gitignore 2021-08-30 18:01:24 +02:00
.gitmodules Refactor: remove unused packages, replace some with new features 2019-07-21 00:37:46 +02:00
CHANGELOG.org Minor fixes to CHANGELOG 2019-07-21 01:10:02 +02:00
init.el Correctly handle installed packages and custom file 2021-09-24 14:53:57 +02:00
LICENSE.txt Add a README, license, and a changelog 2017-09-03 15:36:29 +01:00
README.org Fix outdated README about zsh 2021-09-30 00:06:47 +02:00

.emacs.d

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

vterm_printf(){
    printf "\e]%s\e\\" "$1"
}

vterm_prompt_end() {
    vterm_printf "51;A$(whoami)@$(hostname):$(pwd)";
}
setopt PROMPT_SUBST
PROMPT=$PROMPT'%{$(vterm_prompt_end)%}'

Installation

Clone this repository into your home directory:

$ git clone https://github.com/Wojtek242/.emacs.d ~/.config/emacs

This configuration uses the 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

$ 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

Once the initial setup completes, you also need to run the following in Emacs

M-x all-the-icons-install-fonts

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 directory. Its operation is heavily inspired by Spacemacs, but is much smaller with fewer features and thus simpler. For instructions, see its own README file.

Theme

The theme in use started with the underwater theme and has been heavily modified, with inspiration from the Spacemacs theme, to add support for all new faces introduced by the installed packages.

The theme files are located in the themes directory.