NixConf読書会#1
NixConf読書会 第1回
読書会の趣旨については親ページ NixConf読書会 を参照してください
開催概要
日時: 2024-12-22 (日) 16:00
場所: nix-ja Discord #読書会
対象(敬称略): Peacock
リポジトリ: peacock0803sz/dotfiles https://github.com/peacock0803sz/dotfiles
commit hash: b2b3a37a2ec21370a7873b3bfdfd766ba0e3ff3c
https://github.com/peacock0803sz/dotfiles/tree/b2b3a37a2ec21370a7873b3bfdfd766ba0e3ff3c
読書中メモ
以下、メモ(気づいたことや感想など)を自由に書いていってください
flake.nix#L26-35 nix-darwin/NixOSじゃないマシンも対応したいなあ(TODO) peacock0803sz.icon
flake.nix#L28-29 名前の付け方がいいkuuote.icon
ホスト名nixosは一時的なのでそうなってるんですが、他はクラシック音楽用語から全部取っていますね peacock0803sz.icon
flake.nix#L15-18 flake = false;には無限の可能性があるsatler.icon
flake = false;使うかnvfetcher使うかで無限に悩んでるkuuote.icon(今はVimくらいしか管理してないのでflake inputsでやってる)
nvfetcherはじめてきいたaumy.icon
GitHubとか見て勝手に最新のhash拾ってくれるのでとても便利kuuote.icon
flake.nix#L23 outputsの引数を全部 @inputs に束縛するの結構見るんですけど、バラすかどうか悩んでます peacock0803sz.icon
使用頻度によるaumy.icon
flakeのinputsって使ってないやつもfetchされますよね確かaumy.icon
ですねkuuote.icon
NixOSでもnix-darwinがfetchされる まあ気にするほどでもなさそうaumy.icon
builtins.getFlake で遅延評価しつつ flake.nix をとってこれる(lock がだるいけど)asa1984.icon
getFlake知らなかった。必要かは別として試してみるかkuuote.icon
.config/nix/hosts/nocturne/packages.nix#L3-L16 overlayを使ったほうが良さそう(マシンの設定ごとに重複しているので) natsukium.icon
.config/nix/hosts/nocturne/packages.nix#L3-L16 何らかの意図があるのでなければ nixpkgs.config を使うほうが一般的かな natsukium.icon
必要無いのに参照作ると混乱の原因になるので注入される参照を引き回すのが一番いいkuuote.icon
:+1: natsukium.icon
.config/nix/hosts/nixos/packages.nix#L41-L58: 言語サーバー系を分離していないんだなと思ったけどエディタ系はHome Managerで入れてないからかsatler.icon
今の自分のNeovim設定でローカルのLS消すの結構手間なんですよねー。あと咄嗟に使いたくなったときに一々入れるのが面倒 peacock0803sz.icon
なるほどsatler.icon
.config/nix/hosts/nixos/packages.nix#L16: 消しても良さそうsatler.icon
.config/nix/home-manager/base.nix#L22-L26 で 有効化されてるからsatler.icon
自分もまとめてpackages.nix的な管理をしてるけど、なんでこれ入れたっけってなりがちで難しいsatler.icon
.config/nix/home-manager/base.nix#L11-14 attrsetをstringにするときは条件付きですがoutPathが得られます natsukium.icon
"${pkgs.fetchgit {...}}/gh-copilot-alias.fish natsukium.icon
home-manager の module を使わず .config をそのままシンボリックリンクを張っているあたり、非 Nix 環境での運用も想定してる?asa1984.icon
極力Nix言語じゃなくて、そのソフトウェアのDSLなりを使いたいからですねー。シンタックスハイライトとかLSPとか色々使いたい peacock0803sz.icon
わかるaumy.icon
とくに設定キーがNixのattrにマップされてるようなやつは「tabWidth はhome-manager/NixOS moduleで設定できるのかな?」みたいなことを調べて書く必要があって結局の生産性が落ちているように感じるし、ネイティブ設定がLuaとかJSON Schemaとかでエディタサポートを期待できるならなおさらaumy.icon
わかる~kuuote.icon*3
大抵extraConfigみたいなハッチがあって何でもマップできません?natsukium.icon
attrが生えているやつとextraConfigのどっちが適切か判断するコストをかけたくなく... aumy.icon
nixpkgsにパッチを送ろうnatsukium.icon
確かに。私は hmts.nvim 使って home-manager module 内でもハイライト効くようにしてますasa1984.icon
使い分けが難しいのわかる。satler.icon
私は結構home-manager module使うように設定してみたけど、物によってはあんまり旨味ないし戻してもいいかなって気持ちになってるkuuote.icon
シンプル(あんまり設定をしない)なものほどHome Managerを使う旨味あるのかな。dotfilesの思想がでそうsatler.icon
シンプルなやつならすぐはがせるsatler.icon
いろんな場所に設定を散らせるのですべての設定をNixで書きたい natsukium.icon
思想だ。結構人それぞれで違いますねえ peacock0803sz.icon
rofi みたいな お前の方が謎 DSL だろみたいなのには必ず Nix 使いますasa1984.icon
wwww < お前の方が謎DSLだろ peacock0803sz.icon
GTKの独自拡張CSSっすかねこれaumy.icon
.config/nix/hosts/nixos/default.nix#L31-L33 pkgsはわざわざpropagateしなくても自動で渡るはず natsukium.icon
まじすかー。暗黙で渡るattrわからなさすぎる peacock0803sz.icon
自前importは別では?kuuote.icon
後、packages.nix側でneovim-src要求してるけど渡してないのでエラー吐きそうに見える
あ、これは更新ミスでした....w < neovim-src peacock0803sz.icon
import関数か、だめそうnatsukium.icon
nixos modules のドキュメントの最初に書いてあるはず
The combination ability of Flakes and Nixpkgs module system これを参考にしてたasa1984.icon
あ、これ大本のimport nixpkgsの話かkuuote.icon
メモの書式ガイド
NOTE: 各自で好きにファイルを辿る形式のため、順番は整理する必要ありません
.config/nix/hosts/toccata/default.nixL#L1-L3: 引数を inputs 一つにする形、やりがちpeacock0803sz.icon
先頭に [path/to/file.nix https://github.com/username/dotfiles/blob/<hash>/path/to/file.nix] のようにファイル名(+行範囲)
GitHubの場合は <hash> があるとmaster/mainブランチが更新されてもURL先の内容が変わらないのでオススメ
TIPS: (ブラウザでGitHubを見ている場合) 回の最初に最終コミットのページから「Browse files」を押下し、以後は別タブでザッピングすると便利です
コメント対するリプライはインデントを下げてコメント本文と発言者を記載する
行末に発言者を「( + 自分の名前」または「アイコン記法」で明記する
アイコン記法について
自分のアイコン(+プロフィールページへのリンク)をCtrl + iで挿入できるCosenseの機能
プロフィールページは作成方法など含め 自分のページ | Cosense公式ヘルプ を参照してください
FYI: Cosense(Scrapbox)の記法については以下を参照してください
ブラケティング | Cosense公式ヘルプ
その他の書き方 | Cosense公式ヘルプ
ショートカットキー | | Cosense公式ヘルプ