Skip to content

My cool config for Emacs with big amount of features and fast init time

Notifications You must be signed in to change notification settings

semenInRussia/emacs.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

semenInRussia emacs configuration

./doc/s1.png ./doc/s2.png ./doc/s3.png ./doc/s4.png

Some men tell me “So, you just copy Doom. Why?”. My answer is that my configuration is even better than Doom + it isn’t a stupid copy of Doom, my configuration have a big amount of interesting concepts which is unique for this config. Plus the biggest part of my config is opposite to Doom. Things where my config is better on 100% I will tell #nodoom, where is better by my opinion (everywhere, but here diff is bit) I will tell #dddm

Features

  • a beautiful design.

    It includes

    • a big amount of themes
    • a big supprt of two themes: light and dark. You can change it for session using `M-x my-light-theme` or `M-x my-dark-theme`. If you need to change it forever, replace a line in `my-load-theme.el` file
    • diagnostics and other things from echo area at the top left corner (#nodoom)
    • amazing modeline
    • icons everywhere (#nodoom)
    • No to prettify-mode
    • Small, but amazing padding around screen (#nodoom)
  • Very (really very) fast start up. (#nodoom #nodoom)

    On my old computer doomemacs starts in 4+ seconds (it prints it after startup), but in fact it also wait for when themes, modeline and other things will be loaded. My config on other side take only 2secs and almost don’t take time after.

  • A big amount of packages (192+)
  • Reload the configuration Emacs lisp file after it saved. Inspired by VSCode and NVChad
  • meow over evil (#dddm)
  • Own package manager, built over straight.el. (#nodoom)

    The benefit is a speed, it only one time add to the a path load-path. And other times Emacs will find a package only in this directory, instead of 220+ other directories when use straight.el

    It’s even better than Doom package manager

  • Use good-practice solutions, like replace heavy things with the more light. (#nodoom)
  • Use perspectives (virtual desktops/workspaces for Emacs) with intuitive way

Extension (my config as framework)

Interesting way to extension, which you can call chaos.

You don’t needed my pam package manager if you want anything other! You don’t needed in any strict file system! You don’t need in any macros!

Every config file can be in any sub-folder of /lisp/, have any name, contains any things. Only one separation is that files which not always needed at startup you can place at /lisp/local-projects/ and you will need to build config emacs --modules and all files from /lisp/ will be joined at /dist/my-modules.el you can see source of my-modules build inside local-projects/my-build-config.el, also you can generate autoloads files for local-projects (use --local-projects flag) after that you everywhere can use autoloaded functions from local-projects.

So main files (files of framework part) are only:

  • early-init.el some speed-hacks beginnings for init.el
  • init.el but only a part, where handling of CLI arguments
  • local-projects/my-build-config.el, I think you understand it

Installation

Before installation you must install JetBrainsMono Nerd Font or other Nerd Font, if your font isn’t JetBrainsMono, change the variable inside .config/emacs/lisp/ui/my-fonts.el

To install my config on your config as main use the following shell command, if you need to only try this config (without delete your thing), change .config/emacs on anything like ~/semacs

wget https://github.com/semenInRussia/emacs.el/releases/download/latest/semacs.zip && mkdir .config/emacs -p && unzip -o -d .config/emacs semacs.zip

In this commands 3 steps:

  1. Install the archive which is updated automatically after every commit. This archive contains a configuration with installed 3rd party packages
  2. Make a directory where config will be located (defaults to .config/emacs but in windows it can be anything else)
  3. Unzip the archive to this folder

after this command on Linux you MUST run nerd-fonts-install-fonts

You can extract an archive into any directory, and run emacs using --init-directory flag, like:

emacs --init-directory=~/semacs    # semacs is cloned repo source
# or
emacs -l init.el     # init.el is the file from repo

So you can test it without chemacs and other stupid things, you even not need in emacs29 –init-directory, but you still needed in emacs29