/dotfiles

Personal dev config

Primary LanguageNix

Personal Dev Config

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
  • Zsh as the shell
  • Oh My Zsh as the Zsh configuration manager
  • Atuin to synchronize shell history across multiple machines
  • Ghostty as the terminal emulator (in closed beta right now 🤫 will have to be commmented out without access)

Install

  1. Get Nix
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
  1. Install Home manager Instructions here

  2. Run the setup script

    • On Linux: uncomment the #homeDirectory = "/home/username";
    • (First time)
    home-manager switch --flake .#jachym -L
    • (After the first time)
    update
    • On MacOS
    ./darwin.sh

Project Structure

.
├── extras/
├── nix/
├── .gitignore
├── darwin.sh
├── flake.lock
├── flake.nix
└── home.nix
  • ./nix contains per-package configuration in nix
  • ./extras contains extra configuration files the programs might need
    • For example: ./extras/nvim contains the configuration for NeoVim in lua

Using this configuration

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 | Putta ) or any combination in:
      • flake.nix
      • darwin.sh
      • home.nix
      • ./nix/darwin.nix
      • ./nix/git.nix
      • ./nix/zsh.nix
    • My machine name in ./darwin.sh and ./flake.nix
    • My email in ./nix/git.nix
  • (Optional) If you don't have access to Ghostty, comment out the ghostty package in ./flake.nix and ./home.nix
  • Adapt the keybindings in ./extras/nvim/core/mappings.lua to your liking