This repo contains the configuration files for my work setup. It uses GNU Stow to link the files into the $HOME directory and utilizes Chemacs2 to easily switch between GNU Emacs configurations - whether for debug or development. I strive for literate programming via Org-mode and continue to hope that Doom Emacs will be my configuration framework one day.
To facilitate linking of files from this repo to the $HOME directory, ensure stow
is available.
sudo apt install stow
As this repo contains submodules, clone using the following command to retrieve all necessary files.
git clone <URL-of-dotfiles-repo> dotfiles --recursive
Once complete, load the files into the $HOME directory.
cd dotfiles
stow .
GNU Stow is a symlink farm manager which takes distinct packages of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in the same place.
…
This is particularly useful for keeping track of system-wide and per-user installations of software built from source, but can also facilitate a more controlled approach to management of configuration files in the user’s home directory, especially when coupled with version control systems.
Briefly, it creates symlinks from this cloned repo to its parent directory for both files and directories contained within.
Managing dotfiles with GNU stow was helpful to understand this concept.
Chemacs 2 is an Emacs profile switcher, it makes it easy to run multiple Emacs configurations side by side.
Think of it as a bootloader for Emacs.
The obvious successor to chemacs, allows for switching between the profiles listed in .emacs-profiles.el.
By default, the profile whose name matches the contents of .emacs-profile will be
chosen. Alternatively, the user may provide the profile name on the command line using
--withprofile foo
. See Usage or this helpful System Crafters article for more info.
I am constantly tinkering with my Emacs configuration (probably too much) and love the flexibility that Chemacs2 (see above) affords me. I also strive for meaningful documntation - for myself and any reader. The following table outlines the different configurations contained in this repo.
Name | Profile | Configuration | Default | Bash Alias |
---|---|---|---|---|
Legacy | legacy | legacy/myinit.org | Yes | e |
Evil Basic | evil-basic | evil-basic/init.el | No | eb |
Modern | modern | modern/config.org | No | me |
One quirkly aspect of these ’package.el‘-based configurations is that they all download and install ELisp packages to a shared directory. This is atypical for Emacs, but it helps keep each configuration clean and allows for different configurations to use the same downloaded packages.
My current config is a frankenstein of packages, customizations, and workarounds that I have employed over the years for ASIC design, scripting, and software development. I hope to find time to start anew and possibly switch to Doom altogether.
A simple configuration for the native vi
user who wants to dip a toe into Emacs or just wants the
Org file to do its thing without much setup. It includes org-mode
and plantuml-mode
.
Rediscover Emacs with a more modern approach. Test advanced features and pave the way towards more powerful frameworks like Doom or Spacemacs.
- [X]
use-package
to organize packages. - [X] Literate Programming (i.e. Org file)
- [X] Auto-tangle on save https://youtu.be/kkqVTDbfYp4?t=1371
- [X] Table of Contents
- [X] House-keeping
- [X] no-littering
- [X] auto-update-packages
- [X] Keep various files out of the config
- [X] eliminate custom.el altogether
- [-] Keybindings
- [-] Evil
- [X] evil-surround
- [X] evil-nerd-commenter
- [X] evil-matchit
- [ ] targets.el?
- [ ] evil-args?
- [ ] evil-cleverparens?
- [ ] evil-escape?
- [ ] evil-exchange?
- [ ] evil-snipe?
- [ ] evil-easymotion?
- [ ] evil-goggles?
- [ ] goto-chg?
- [ ] evil-vimish-fold?
- [ ] evil-collection?
- [ ] general.el?
- [ ] Hydra?
- [-] Evil
- [ ] Non-GUI IDE-like features
- [ ] ripgrip
- [ ] magit
- [ ] Completion framework
- [ ] snippets
- [ ] projectile
- etc.
- [ ] Emacs client/daemon
- [ ] With X11 forwarding, similar experience to terminal Emacs inside tmux?
- [ ] GUI Features
- [ ] treemacs
- [ ] lsp-mode
- [ ] dap-mode?
- [ ] Company?
- [ ] flycheck/flyspell?
- [ ] Beautify
- [ ] rainbow delimiters
- [ ] ligatures?
- [ ] icons?
- [ ] fonts?
SSH connections to github.com
appear to be completely blocked by the firewall. Only HTTPS
connections are allowed for push
/ pull
. For push
ing to this repo, you will need a Personal
Access Token (PAT) because username/password are disallowed for security reasons.