Skip to content
yutkatPublic

About

The best and strongest dotfiles. Editor: Neovim; Shell: zsh(zinit, powerlevel10k); Terminal: WezTerm; Desktop: Hyprland, walker, dunst; OS: NixOS, ArchLinux (Ubuntu/Fedora/CentOS)

Topics

Resources

Code of conduct

Contributing

Stars

1.0k stars

Watchers

11 watching

Forks

Repository files navigation

dotfiles

total lines GitHub code size in bytes GitHub repo size Created

GitHub commit week activity GitHub commit month activity GitHub commit year activity

Overview

My home dotfiles

overview

Supported OS

GUI

  • NixOS (recommend)
  • Arch Linux (You must install various GUI apps yourself)

CLI

  • NixOS
  • Arch Linux
  • Other Linux distributions (Nix or mise only; not tested in CI)

Install (NixOS)

  1. Download

    git clone https://github.com/yutkat/dotfiles.git
    cd dotfiles
  2. Edit Configuration

    vi flake.nix
    # myHosts = {
  3. Install nix (+flake)

    ./install.sh
  4. Setup (installing tools)

    sudo nixos-rebuild switch --flake .#<hostname>
  5. Link dotfiles (managed by [dotfiles] in mise.toml)

    mise trust
    mise bootstrap dotfiles apply
  6. zsh plugin install

    exec zsh
  7. Install mise tools and run setup tasks

    mise run setup
  8. neovim plugin install

    vi --headless -c 'Lazy! sync' -c 'qall'
  9. Enjoy!

Install (Other OS)

  1. Download

    git clone https://github.com/yutkat/dotfiles.git
    cd dotfiles
  2. Edit Configuration

    vi flake.nix
    # myHosts = {
  3. Install nix (+flake)

    ./install.sh
  4. Setup (installing tools)

    The first run uses the locked Home Manager; afterwards home-manager switch is available.

    # Default user and hostname
    nix run --inputs-from . home-manager -- switch --flake .#<hostname>
    
    # If you override NIX_USERNAME
    NIX_USERNAME=your_username nix run --inputs-from . home-manager -- switch --impure --flake .#<hostname>
  5. Link dotfiles (managed by [dotfiles] in mise.toml)

    mise trust
    mise bootstrap dotfiles apply

    Link sources are relative to the repository root, so any clone location works without extra configuration.

  6. zsh plugin install

    exec zsh
  7. Install mise tools and run setup tasks

    mise run setup
  8. neovim plugin install

    vi --headless -c 'Lazy! sync' -c 'qall'

Install (without Nix)

CLI-only setup with mise and the OS package manager. Nix-managed extras such as the Neovim egress sandbox are not available. This path is not tested in CI.

  1. Install prerequisites with the OS package manager

    git, zsh, curl, gcc, make, unzip, node (22+), and bun (mise installs npm-based tools with bun)

    # Arch Linux
    sudo pacman -S --needed git zsh curl gcc make unzip nodejs-lts-jod bun

    Distribution Node.js packages can be too old (e.g. Ubuntu); use the official installer in that case.

  2. Install mise

    curl https://mise.run | sh
    export PATH="$HOME/.local/bin:$PATH" # .zshenv adds this after linking
  3. Download

    git clone https://github.com/yutkat/dotfiles.git
    cd dotfiles
  4. Link dotfiles (managed by [dotfiles] in mise.toml)

    mise trust
    mise bootstrap dotfiles apply
  5. zsh plugin install

    exec zsh
  6. Install mise tools and run setup tasks

    mise run setup
  7. neovim plugin install

    vi --headless -c 'Lazy! sync' -c 'qall'

Temporary Install

If you do not want to dirty your home directory

  1. Setup the container

    docker run -it --rm archlinux:latest /bin/bash
  2. Setup the environment

    pacman -Sy --noconfirm sudo git
    useradd -m -s /bin/bash test
    echo 'test ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
    su - test
  3. Download

    git clone https://github.com/yutkat/dotfiles.git
    cd dotfiles
  4. Install

    ./install.sh --single
     exec bash
  5. Setup (installing tools)

    nix run --inputs-from . home-manager -- switch --flake .#test
  6. Link dotfiles (managed by [dotfiles] in mise.toml)

    mise trust
    mise bootstrap dotfiles apply
  7. zsh plugin install

    exec zsh
  8. Install mise tools and run setup tasks

    mise run setup
  9. neovim plugin install

    vi --headless -c 'Lazy! sync' -c 'qall'

Components

  • zsh
  • neovim
  • wezterm
  • (optional) Hyprland

Usage

Frequently used shortcuts

wezterm

key action
Alt-h/j/k/l switch window
Alt-j close window
Alt-k create window
S-Up/Down/Left/Right switch pane

Hyprland

key action
Mod-h/j/k/l switch window
Mod-S-h/j/k/l move window
Mod-C-S-h/j/k/l move workspace

Insight

Activity

Performance Stats of yutkat/dotfiles - Last 28 days

Changes

Lines of Code Changes of yutkat/dotfiles

Star History

Star History of yutkat/dotfiles

About

The best and strongest dotfiles. Editor: Neovim; Shell: zsh(zinit, powerlevel10k); Terminal: WezTerm; Desktop: Hyprland, walker, dunst; OS: NixOS, ArchLinux (Ubuntu/Fedora/CentOS)

Topics

Resources

Code of conduct

Contributing

Stars

1.0k stars

Watchers

11 watching

Forks

Releases

Used by

Contributors

Languages