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!
Caution
I haven't tried the MacOS setup on a clean OS yet.
- Run:
xcode-select --install
- Install Lix:
curl -sSf -L https://install.lix.systems/lix | sh -s -- install - Install
brew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 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
- Verify the username and uid in the flake are the same as the
idcommand reports - Rebuild the system from the flake
sudo nix run nix-darwin/master#darwin-rebuild -- switch --flake ~/personal/dotfiles - Add WezTerm to "Input Monitoring" under "Privacy & Security". Rebuild again to set keyboard remaps:
task --taskfile ~/personal/dotfiles/Taskfile.yml rebuild - Install Neovim spell files
- Note: Enable NetRW and disable oil.nvim to download spell files (see stevearc/oil.nvim#163)
Note: This uses the sffpc host.
Adjust the host, paths, and URIs accordingly if needed.
- Download the minimal NixOS ISO image and create a bootable USB
- Run the live version from the USB
- Use disko with
nix/disko/sffpc.nixto partition the disk:- Make sure that the
devicevalue innix/disko/sffpc.nixis up to date - 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 - Verify that
mount | grep /mntshows new entries for/mntand/mnt/boot
- Make sure that the
- (Only if setting up a new machine) Retrieve
hardware-configuration.nix:- Run:
sudo nixos-generate-config --no-filesystems --root /mnt
- Add
/mnt/etc/nixos/hardware-configuration.nixto this repository - Update
flake.nixto include the added file - Push the updated version
- Run:
- Install the system:
sudo nixos-install --root /mnt --flake git+https://codeberg.org/TymekDev/dotfiles#sffpc --no-write-lock-file
- Set a password for users defined in the configuration:
sudo nixos-enter --root /mnt -c "passwd tymek"
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.
Run the installation script:
bash <(curl -L https://codeberg.org/TymekDev/dotfiles/raw/branch/main/scripts/codespace-install.sh)Or install manually:
-
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
-
Source the shell integration:
. ~/.local/state/nix/profiles/profile/etc/profile.d/nix.sh
-
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
--refreshflag - Note: Subsequent rebuilds can be done with the installed
nix-codespace rebuildcommand
- Note: if the latest version doesn't get fetched after a recent push, then try adding the
-
Set the shell:
sudo chsh "$(id -un)" --shell "/home/$(id -un)/.local/state/nix/profile/bin/fish"
-
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'
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 aBrewfile: (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)
Disclaimer: I am not an author of the image at local/share/wallpaper.webp and I do not claim any rights to it.