Here are some example photos of how this configuration may look:
These dotfiles are read by several programs and are used to configure my computer environment.
These dotfiles only work for linux and freebsd systems, they are not compatible with non-free systems or systems that are not unix derivatives. To use these dotfiles you should already have a solid grasp on emacs and using a minimal software system (FreeBSD, Arch Linux, Gentoo).
While this repository contains dotfiles for a variety of programs, my workflow is centered around emacs, so most of the data in this file is concentrated in the ./.emacs.d/init.el file. In this file I use a variety of external elisp packages to add features not provided by emacs by default.
use-package- for cleaner code when using package.el to manage packagesauto-package-update- to update emacs packages in regular intervals with certain configurationgcmh(Garbage Collection Magic Hack) - to use garbace collection to improve performace when starting emacssmooth-scrolling- for cleaner scrolling in pure emacs buffersdoom-themes- a collection of aesthetically pleasing themesall-the-icons- A collection of icon sets that are useful for a variety of purposesemojify- For emojis (which are only used as icons)ivy- an autocompletion engine for emacs, extended by counselcounsel- ivy-intergration with a variety of other emacs-based programsivy-rich- descriptions of M-x commands when in an ivy-buffersmex- history for M-x commandsswiper- search text through a counsel (ivy) bufferivy-posframe- Render the window in a variety of more usefull positionswinum- to label windowstelephone-line- A more modern implementation of powerline for emacs, that means a ccustomizable, aesthetically pleasing modeline can be usedrainbow-delimiters- Colour code brackets (same as popular vscode extention)evil-nerd-commenter- Expected behaviour for commenting out lines using a keybindingwhich-key- Suggest keybindings for long key stringsgeneral- A simple interface for mapping long keybindings in emacsrecentf- Find recently accessed files quicklywriteroom-mode- A distraction free interface for writing in an emacs bufferevil- Vim keybinding emulation within emacs, limited functionality when controlling EXWM buffers.evil-collection- A collection of packages to help intergrate evil keybindings into all sorts of emacs scenarioshydra- Functional keybindings for repetitive tasks (buffer scalling, text scalling, buffer cycling)projectile- Project managment workflow within emacscounsel-projectile- Counsel intergration with projectile M-x commands - mainly used for ripgrepping across a projectmagit- Magical git porecline for emacstreemacs- Project sidebar for emacs, simmilar to Nerdtree for vimtreemacs-evil- Must be used if using both treemacs and eviltreemacs-all-the-icons- Treemacs theme using all-the-icons’ github iconsdired-single,dired-open,peep-dired- Making dired easier to useterm- Minimal terminal emulator for emacseterm-256color- Color support for term-modeeshell- Fast terminal emulator with it’s own shelleshell-git-prompt- Powershell theme for eshellvterm- Feature rich terminal emulatorelfeed- RSS reader for emacselfeed-goodies- An extention to elfeed which brings functional and aesthetic changeeww- Emacs Web Wowser (a CLI web browser for emacs)lsp-mode- Bringing IDE features for emacs (requires external programs)company- Better interface for autocompletions within prog-modescompany-box- Better apperance for companylsp-ui- UI improvements when using lsp-modelsp-treemacs- Lsp-mode intergration with treemacslsp-ivy- Quicker symbol searching with ivydap-mode- Used to debug codepython-mode- Python support within emacslsp-pyright- Language Server for LSP mode for pythonrust-mode- Rust language support within emacs (requires external programs)go-mode- Golang language support within emacs (requires external programs)org- Org mode notation systemorg-tempo- Functional enhancements for speeding up org workfloworg-bullets- Diffrenciated aesthetically pleasing bullets for emacsdmenu- A program within emacs that mirrors the functionality of the suckless dmenu programexwm- Emacs X Window Manager, allows for use of Emacs as the Desktop Environment.desktop-environment- Commands to control multimedia through emacs
nitrogen- For mapping and selecting wallpaperspicom- For use as a compositorzsh- As a shell (bash or any other shell, could be used)lightdm- As a display manager, althoughxorg-xinitcould be used
Please note that other programs (e.g. X11 and Emacs) are obviously required, you should install these dependency programs first. Some less obvious other dependencies are the language servers for lsp-mode these are:
ccls- Language server for C/C++ Developmentgopls- Language server for Go Developmentrls- Language server for Rust Development (Other language servers come as emacs packages)
spectrwm- Spectrwm is used as a backup window manager in the case that you mess up your init.el file and need to load something else to fix it.

