Skip to content

TymekDev/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,170 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TymekDev's dotfiles

Hey 👋 This repo holds config files for the tools that I use. It's mostly Nix-pilled as of March 2026.

Explore, get inspired, and beware, because here be dragons! If you have any questions feel free to reach out to me at tymek.makowski@gmail.com, enjoy!

Setup

Caution

I haven't tried the MacOS setup on a clean OS yet.

MacOS (with nix-darwin)

  1. Run:
    xcode-select --install
  2. Install Lix:
    curl -sSf -L https://install.lix.systems/lix | sh -s -- install
  3. Install brew:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  4. Clone the repo:
    git clone https://codeberg.org/TymekDev/dotfiles ~/personal/dotfiles
    git -C ~/personal/dotfiles remote set-url origin ssh://git@codeberg.org/TymekDev/dotfiles.git
  5. Verify the username and uid in the flake are the same as the id command reports
  6. Rebuild the system from the flake
    sudo nix run nix-darwin/master#darwin-rebuild -- switch --flake ~/personal/dotfiles
  7. Add WezTerm to "Input Monitoring" under "Privacy & Security". Rebuild again to set keyboard remaps:
    task --taskfile ~/personal/dotfiles/Taskfile.yml rebuild
  8. Install Neovim spell files

NixOS

Note: This uses the sffpc host. Adjust the host, paths, and URIs accordingly if needed.

  1. Download the minimal NixOS ISO image and create a bootable USB
  2. Run the live version from the USB
  3. Use disko with nix/disko/sffpc.nix to partition the disk:
    1. Make sure that the device value in nix/disko/sffpc.nix is up to date
    2. Run:
      curl -o /tmp/disko.nix https://codeberg.org/TymekDev/dotfiles/raw/branch/main/nix/machines/sffpc/disko.nix
      sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount /tmp/disko.nix
    3. Verify that mount | grep /mnt shows new entries for /mnt and /mnt/boot
  4. (Only if setting up a new machine) Retrieve hardware-configuration.nix:
    1. Run:
      sudo nixos-generate-config --no-filesystems --root /mnt
    2. Add /mnt/etc/nixos/hardware-configuration.nix to this repository
    3. Update flake.nix to include the added file
    4. Push the updated version
  5. Install the system:
    sudo nixos-install --root /mnt --flake git+https://codeberg.org/TymekDev/dotfiles#sffpc --no-write-lock-file
  6. Set a password for users defined in the configuration:
    sudo nixos-enter --root /mnt -c "passwd tymek"

Extending

To rebuild the system after making changes run:

nixos-rebuild switch --use-remote-sudo --flake .

Note: If you see an error that a file is missing, then make sure it is tracked by git. Flakes are git-aware and the error doesn't suggest that this might be the issue.

GitHub Codespace

Run the installation script:

bash <(curl -L https://codeberg.org/TymekDev/dotfiles/raw/branch/main/scripts/codespace-install.sh)

Or install manually:

  1. Install Nix:

    NIX_CONFIG="experimental-features = flakes nix-command
    access-tokens = github.com=$GITHUB_TOKEN
    use-xdg-base-directories = true" \
      sh <(curl -L https://nixos.org/nix/install) --no-daemon
  2. Source the shell integration:

    .  ~/.local/state/nix/profiles/profile/etc/profile.d/nix.sh
  3. Build the home-manager configuration:

    NIX_CONFIG="experimental-features = flakes nix-command
    access-tokens = github.com=$GITHUB_TOKEN
    use-xdg-base-directories = true" \
      nix run github:nix-community/home-manager -- \
      switch --flake "git+https://code.tymek.dev/TymekDev/dotfiles#$(id -un)"
    • Note: if the latest version doesn't get fetched after a recent push, then try adding the --refresh flag
    • Note: Subsequent rebuilds can be done with the installed nix-codespace rebuild command
  4. Set the shell:

    sudo chsh "$(id -un)" --shell "/home/$(id -un)/.local/state/nix/profile/bin/fish"
  5. Install Neovim plugins:

    nvim --headless '+lua vim.pack.update({}, { version = "offline", target = "lockfile" })' '+qa'
    nvim --headless '+lua require("nvim-treesitter").install({ "r", "markdown", "rnoweb", "yaml", }):wait(3 * 60 * 1000)' '+qa'

Notable Commits in History

Starting with the oldest:

  • Commit deleting unused configs: (b9d3554) chore: remove unused configs
  • Commit removing home-manager: (2d5d745) refactor: purge home-manager and Nix
  • Commit adding setup automation using make: (7ac8ddf) Merge branch 'make-magic'
  • Commit switching from packer.nvim to lazy.nvim: (1ad9d73) Merge pull request #8 from TymekDev/lazy.nvim
  • Commit replacing the make-based setup with a Brewfile: (fa64d51) refactor: use Brewfile
  • Commit adding the NixOS configuration: (c844f53) Merge branch 'nixos'
  • Mostly switched to nix-darwin on macOS: (7aa7741)
  • Nix-based GitHub Codespace config: (8ec654d)
  • Replaced lazy.nvim with vim.pack: (1ce3839)

License

Disclaimer: I am not an author of the image at local/share/wallpaper.webp and I do not claim any rights to it.

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors