← 一覧に戻る

dotfilesの管理をnixにした話

なぜnixを使おうと思ったか

なぜnixを使おうと思ったかというと、単純になんかみんな最近nix,nix言っているからです。みんな言ってたらそりゃ試したくなりますよ。 まだ学びたての意見ですが参考になれば幸いです。

何を管理するようにしたか

基本的に以下の管理をnixに移行しました

  • dotfiles
  • CLI-tool
  • GUI-tool
  • nvim-LSP
  • nodejs

ディレクトリ構成

わたしのdotfiles(nix限定)は、以下のファイル構成で管理しています

.
├── flake.nix
├── flake.lock
├── nix
│   ├── CLAUDE.md
│   ├── README.md
│   ├── shared.nix
│   ├── cachix.nix
│   ├── modules
│   │   ├── darwin
│   │   │   ├── system.nix
│   │   │   └── darwin.nix
│   │   ├── tools
│   │   │   ├── packages
│   │   │   │   ├── base.nix
│   │   │   │   ├── dev.nix
│   │   │   │   ├── cli.nix
│   │   │   │   ├── gui.nix
│   │   │   │   └── default.nix
│   │   │   └── program
│   │   │       └── gh
│   │   │           └── gh.nix
│   │   └── home-manager
│   │       ├── symlinks.nix
│   │       ├── linux.nix
│   │       ├── darwin.nix
│   │       └── tools-read.nix
│   └── overlays
│       ├── default.nix
│       ├── node-packages.nix
│       ├── nix-index.nix
│       └── ai-tools.nix

具体的にどのように使っているか

私はlinuxはhome-managerで、macOSはnix-darwin & home-managerで管理しています。 もともとnixで管理する理由がマルチシステム対応にできることとpackages.nixで管理しているパッケージを一瞬で見ることができるから使っているという面もあります。

コンポーネント Linux, ARM-linux macOS
システム設定 home-manager nix-darwin
ユーザーパッケージ home-manager home-manager (nix-darwin統合)
シェル fish fish

ですが1つ問題があったんです。それはあまりにもログが気持ちよくない そのために使っているのが、nix-output-monitorというものを使っています。 これは、今何をインストールしているかなどがひと目で見ることができます。 そして何より、ログ見てて気持ちいい=素晴らしい!

cachixは使おうと思ったのですが、今の自分にはあまり必要性を感じられなかったので使っていません。

https://github.com/maralorn/nix-output-monitor


管理しているパッケージ一覧

{ pkgs }:

with pkgs;
[

  #Editor
  neovim
  vscode
  zed

  #shell
  fish
  zsh
  bash
  starship

  #CLI tools
  jq
  bat
  trash-cli
  curl
  wget
  zoxide
  tree
  htop
  fastfetch
  neofetch
  onefetch
  eza
  file
  which
  fzf
  node2nix
  tmux
  uv
  ncdu 
  delta
  tldr
  bottom
  just
  xh

  # nix
  nix-tree
  direnv
  cachix
  niv

  # docker
  docker
  lazydocker

  #development, langs
  stylua
  bun
  deno
  nil
  nixd
  pkgs.nixfmt
  rustc
  rust-analyzer
  python312
  nodejs_24
  pnpm

  #package tools
  cargo
  cmake
  ninja

  #github
  bit
  git
  gh
  ghq
  lazygit
  git-wt
  gitui

  #AGENT
  kiro-cli

  #GUI software
  wezterm
  audacity
  spotify
  discord
  ghostty
  tor-browser
]

使っているCLIツールについての紹介は https://zenn.dev/nazozokc/articles/e8037db23d97a5 の記事で紹介しています。

ですが1つ、めちゃめちゃ良かったので紹介したいのがfzfという、ファイル検索ツールです。なんと行ってもUIがおしゃれです。そして組み合わせ方が豊富です。 自分はfzf + cdを組み合わせてディレクトリ移動のために利用しています。めっちゃ便利だからこれからCLIを使う皆さんはぜひ使ってみましょう!!

まとめ

いかがでしたでしょうか?今回は私が初心者ながら実際にどのようにnixを使っているかを紹介しました、コードはほぼAIなんですけどねw。 今回の記事が少しでも皆さんの役に立てば幸いです 記事はファイルの中身や使い方が変わったら更新しようと思います。

https://github.com/nazozokc/dotfiles


今回の記事はこのレポジトリで公開しています。間違っている場所があればissueを立てていただければ幸いです。 https://github.com/nazozokc/zenn-repo

© 2026 nazozokc

Built with SvelteKit