Configurations for the following are included
- fish/starship/alacritty
- yabai/skhd
- neovim/vim/neovide/goneovim
- emacs
- IdeaVim (intellij)
- VsCode
Warning: If you want to give these dotfiles a try, you should first fork this repository, review the code, and remove things you don’t want or need. Don’t blindly use my settings unless you know what that entails.
This setup was created first and foremost for macOS. Although most dotfiles should transfer well between macOS and Linux, some might not. Nix should allow it to work well on linux, but some packages may not translate as well (e.g. emacsMacport and anything installed with Homebrew)
- Run
preinstall.sh
to install and move the required dotfiles - Install nix by running the following: macOS
sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume
- Run
postinstall.sh
to finalize setup
On macOS, all the prequesites should be automatically installed. On linux, make sure you have a package manager, as well as git installed.
If you run into issues with xcode, install the Xcode CLT for macOS (this is needed for Git and our Homebrew Installation)
sudo xcode-select --install
Note: Brew will install the native-compilation version of emacs-plus, but it may be buggy on certain machines and configurations. You can install emacs-mac if you want emacs27 instead.
For linux users, either install emacs
(emacs 27) or [recommended] emacs-pgtk-native-comp
(emacs 28) via your package manager of choice.
My emacs configuration is designed for org-mode editing, as well as moderate programming use.
If you want to upgrade or sync emacs, you can run
doom sync -u
If you modify your shell configuration, run doom env
to regenerate env vars
My neovim configuration is designed for programming and quick text editing. As such, it opens in under 40ms.
Upon starting Neovim, packer should automatically install. You will need to install and sync all plugins. You can do this by running the following.
:PackerSync
The plugins will install. After restarting neovim, nvim-treesitter should install and configure parsers. Afterwards. run :checkhealth
to check for possible issues.
If you modify the configuration files for certain plugins, you may have to run :PackerSync
to apply changes
If you want to take advantage of the LSP, you can install language servers using the following command:
:LspInstall (language)
e.g. :LspInstall java
to install the java LSP (jdtls)
I also recommend installing Neovide or goneovim if you prefer a gui experience. A goneovim config is included in the dotfiles
My VsCode configuration is for those moments when I have to use vscode (pair programming) or for filetypes that work much better in vscode (python notebooks)
You may have to install both the Nord VsCode theme, as well as the Vim emulation extension.
I use intellij for java development, or anything where I need an IDE. You should only need IdeaVim for the configuration to function, but I recommend getting the material theme and nord theme as well.
Fish doesn't detect homebrew by default. You can enable homebrew under fish by running either
set -U fish_user_paths /usr/local/bin $fish_user_paths
or for Apple Silicon macs
set -U fish_user_paths /opt/homebrew/bin $fish_user_paths
Suggestions/improvements welcome!