Skip to content

manzaltu/modus-emacs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modus Operandi Emacs

Modus Operandi Emacs is a project that aims to deliver a robust and fast development environment. It supports various programming languages and file formats by utilizing relevant language servers and modes.

This is my continually evolving Emacs configuration. I recommend drawing inspiration from it and adapting it to your own needs.

Emacs Version

This configuration is intended to be used only on Emacs 29 built with tree-sitter support. I strongly recommend using Emacs builds with native compilation enabled. In addition, I discourage builds with pgtk enabled for now, as it seems to negatively impact performance in some scenarios (e.g. corfu auto completion).

Compiling Emacs 29

Until Emacs 29 is officially released, I recommend building it yourself.

Clone Emacs 29 branch:

git clone -b emacs-29 --single-branch https://git.savannah.gnu.org/git/emacs.git

On Debian based distros:

sudo apt install build-essential
sudo apt build-dep emacs
sudo apt install libtree-sitter-dev

On Redhat based distros:

sudo dnf builddep emacs
sudo dnf install libtree-sitter-devel

Inside the cloned repo, build Emacs:

./autogen.sh
./configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=lucid --with-gpm=no --with-modules --with-harfbuzz --with-cairo --with-json --with-native-compilation --with-tree-sitter
make -j$(nproc)
sudo make install

Dependencies

You should have the following software installed:

  1. ripgrep - like grep, but faster
  2. fd - like find, but faster
  3. aspell - for spell check
  4. cmake - for compiling vterm
  5. direnv - for managing environment variables based on current directory

Additional software might be needed based on usage. Follow Messages buffer for details.

Installation

git clone https://github.com/manzaltu/modus-emacs ~/.emacs.d

Optionally, you can install chemacs2 and use this configuration alongside others.

Personalized Settings

You can create a file named personal.el in your Emacs folder and add personalized settings. For example:

;;; personal.el --- Personal configuration file -*- lexical-binding: t; -*-

;;; Commentary:
;; This is a personal configuration file

;;; Code:

;; Personal info
(setq user-full-name "Some Name"
      user-mail-address "user@domain.example")

;; Set font
(set-frame-font  "PragmataPro Mono Liga-16" nil t)

;;; personal.el ends here

Getting updates

You can update the configuration by running the following command inside the cloned dir:

git pull -r

LICENSE

Copyright © 2021 Yoav Orot.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

About

Modus Operandi Emacs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published