Skip to content

nhaas/dotfiles

Repository files navigation

There’s no place like $HOME

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.

Installation

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 .

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.

Chemacs2

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.

Emacs Configurations

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.

NameProfileConfigurationDefaultBash Alias
Legacylegacylegacy/myinit.orgYese
Evil Basicevil-basicevil-basic/init.elNoeb
Modernmodernmodern/config.orgNome

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.

Legacy

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.

Evil Basic

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.

Modern

Rediscover Emacs with a more modern approach. Test advanced features and pave the way towards more powerful frameworks like Doom or Spacemacs.

  1. [X] use-package to organize packages.
  2. [X] Literate Programming (i.e. Org file)
  3. [X] House-keeping
    • [X] no-littering
    • [X] auto-update-packages
    • [X] Keep various files out of the config
    • [X] eliminate custom.el altogether
  4. [-] 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?
  5. [ ] Non-GUI IDE-like features
    • [ ] ripgrip
    • [ ] magit
    • [ ] Completion framework
    • [ ] snippets
    • [ ] projectile
    • etc.
  6. [ ] Emacs client/daemon
    • [ ] With X11 forwarding, similar experience to terminal Emacs inside tmux?
  7. [ ] GUI Features
    • [ ] treemacs
    • [ ] lsp-mode
    • [ ] dap-mode?
    • [ ] Company?
    • [ ] flycheck/flyspell?
  8. [ ] Beautify
    • [ ] rainbow delimiters
    • [ ] ligatures?
    • [ ] icons?
    • [ ] fonts?

Doom?

Straight.el?

Miscellaneous

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published