Skip to content

Latest commit

 

History

History
170 lines (113 loc) · 5.65 KB

README.md

File metadata and controls

170 lines (113 loc) · 5.65 KB

dotfiles

Home Status Home Status Nix Status CI - Go Status Container Status

Personal dotfiles that can be placed in the public repository
Also known as 盆栽(bonsai) 🌳

For visitors

If you are using Podman, you can test the pre-built ubuntu container-image as follows.

bash <(curl -fsSL https://raw.githubusercontent.com/kachick/dotfiles/main/containers/sandbox-with-ghcr.bash) latest

Or, you can directly use some commands with nix run without any installation steps.

nix run 'github:kachick/dotfiles#todo'

List them

nix flake show 'github:kachick/dotfiles' --json | jq '.apps | ."x86_64-linux" | keys[]'

NixOS

Using flake style is disabled in NixOS by default and you should inject git command to use flakes.

For example

nix --extra-experimental-features 'nix-command flakes' shell 'github:NixOS/nixpkgs/nixos-24.05#git' \
  --command sudo nixos-rebuild switch \
  --flake "github:kachick/dotfiles#$(hostname)" \
  --show-trace
sudo reboot now

List defined hostnames

nix flake show 'github:kachick/dotfiles' --json | jq '.nixosConfigurations | keys[]'

This repository intentionally reverts the home-manager NixOS module.
So, you should activate the user dotfiles with standalone home-manager even though NixOS.

nix run 'github:kachick/dotfiles#home-manager' -- switch -b backup --flake 'github:kachick/dotfiles#kachick@desktop'

See GH-680 for background

Ubuntu

  1. Install Nix package manager with DeterminateSystems/nix-installer to enable Flakes by default.

    curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
  2. Make sure there is a nix directory that is used in the home-manager.
    This is a workaround, See the thread for detail

    mkdir -p ~/.local/state/nix/profiles
  3. Restart current shell to load Nix as a PATH

    bash
  4. Apply dotfiles for each use

    nix run 'github:kachick/dotfiles#home-manager' -- switch -b backup --flake 'github:kachick/dotfiles#user@linux-cli'

    Candidates

    • user@linux-cli # Used in container
  5. If you faced to lcoale errors such as -bash: warning: setlocale: LC_TIME: cannot change locale (en_DK.UTF-8): No such file or directory

    sudo localedef -f UTF-8 -i en_DK en_DK.UTF-8

Podman on Ubuntu

  1. Install uidmap without Nix for use of podman even if the podman will be installed from nixpkgs

    sudo apt-get install --assume-yes uidmap
  2. Make sure putting /etc/containers/policy.json, it is not a home-manager role

    sudo mkdir -p /etc/containers
    cd /etc/containers
    sudo curl -OL https://raw.githubusercontent.com/kachick/dotfiles/main/config/containers/policy.json
  3. Make sure the cgroup v1 is disabled if you on WSL, See the docs

  4. Make sure you can run containers as podman run public.ecr.aws/debian/debian:12.6-slim cat /etc/os-release

Debian

After installing missing tools, you can complete same steps as Ubuntu

sudo apt update
sudo apt upgrade
sudo apt install --assume-yes curl
sudo apt install --assume-yes dbus-user-session # For podman

Remember to set special config and reboot if you on WSL

echo '
[boot]
systemd=true' | sudo tee /etc/wsl.conf

macOS

Activate kachick@macbook as Linux and manually setup some packages.

Windows

After installing WSL2, you can activate home-manager and NixOS-WSL.
Read Windows README and CI for further detail.

Multi-booting on Windows and Linux

Check traps

How to setup secrets

Extracted to wiki

Note

If you are developing this repository, the simple reactivation is as follows.

makers apply 'kachick@wsl'

For NixOS

sudo nixos-rebuild switch --flake ".#$(hostname)" --show-trace && \
    makers apply 'kachick@desktop'

If you encounter any errors in the above steps, Check and update CI and wiki.