Skip to content

kachick/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

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

Following steps

  1. Restore GPG secret from STDIN

    gpg --import
  2. Restore SSH secret from STDIN

    touch ~/.ssh/id_ed25519 && chmod 400 ~/.ssh/id_ed25519
    hx ~/.ssh/id_ed25519
  3. Restore encrypted rclone.conf from STDIN

  4. Restore shell history

    Work in Progress

Note

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

makers apply user@linux-cli

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.