This is a repository to set up my personal development environment it includes nice things like:
- Nix as the package manager
- NeoVim as the text editor
- Yazi terminal file manager
- Nushell as the shell
- Atuin to synchronize shell history across multiple machines
- Ghostty as the terminal emulator
- Get Nix
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install- Install Home manager Instructions here
Base installation (master branch):
nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install- Run the setup script
- On Linux: uncomment the
#homeDirectory = "/home/username"; - (First time)
home-manager switch --flake .#jachym-x86 -L #x86-64 linux home-manager switch --flake .#jachym-aarch -L #aarch64 linux
- (After the first time)
update
- On MacOS
- (First time)
nix run nix-darwin -- switch --flake ~/dotfiles- (After the first time)
darwin
- On Linux: uncomment the
-
unknown-terminal ghostty-xterm- terminfo needs to be updated follow hereFor ssh, run this on the host:
infocmp -x | ssh YOUR-SERVER -- tic -x -
.
├── extras/
├── nix/
├── .gitignore
├── darwin.sh
├── flake.lock
├── flake.nix
└── home.nix
./nixcontains per-package configuration in nix./extrascontains extra configuration files the programs might need- For example:
./extras/nvimcontains the configuration for NeoVim in lua
- For example:
NOTE: This configuration is specific to my environment and will likely not work out of the box
If you want to use this configuration, you can fork this repository and make the following changes:
- Replace any occurences of:
- My name (Jachym):
flake.nixdarwin.shhome.nix./nix/darwin.nix./nix/git.nix./nix/zsh.nix./nix/nushell.nix
- My machine name in
./darwin.shand./flake.nix - My email in
./nix/git.nix
- My name (Jachym):
- Adapt the keybindings in
./extras/nvim/core/mappings.luato your liking