• NixOSで最強のLinuxデスクトップを作ろうを見ながらやる
    • slugが nixos-is-the-best で良い
  • https://nixos.org/download/ から nixos-plasma6-24.05.3346.8c5066250910-x86_64-linux.iso をダウンロード
  • VirtualBoxでインストールしてみる
    • RAM4GB、プロセッサ2、ストレージ150GB
    • デスクトップ環境はなしでインストールする
    • なんかうまくいかなかったのでVirtualBoxもVMもDドライブ(HDD)からCドライブ(SSD)へ移動
      • インストールできた
  • 起動してFlakeを有効化する
    • viもvimもないのにnano入っててウケる
    • /etc/nixos/configurations.nixnix.settings.experimental-features = ["nix-command" "flakes"] を書くだけ
      • たぶんどこでもいいのでbootloaderの設定がある真下に書いた
    • git入ってなくてウケる
      • environment.systemPackages = with pkgs; [] の中に書いたら良さそう
        • vimがコメントアウトされた状態ですでに記述されていた
          • neovimにしときゃよかった まあいいや
  • sudo nixos-rebuild switch でビルド
  • 完全に素のVimはさすがにつらいので~/.vimrcを作る
    syntax on
    set number rnu smarttab expandtab autoindent smartindent incsearch hlsearch smartcase showcmd
    set shiftwidth=2
    set tabwidth=2
    set encoding=utf-8
    • 最小にしては盛りすぎかも
  • cd && mkdir nixos-config && git init && cp /etc/nixos/* . してinitial commitする
    • user.nameが設定されてないと怒られた そういやそんなのあったな
  • flake.nix を作成して色々書く
    • 閉じ括弧が大量に連続していて、なんかFlutterっぽいなあと思いました(?)
      • JavaScriptでもこうなりがちなんだよな(ReactのJSX内でArray.mapとかやると特にね)
  • sudo nixos-rebuild switch --flake .#myNixOS
    • error: getting status of '/nix/store/長い文字列-source/flake.nix': No such file or directory と言われた
      • 長い文字列のとこはHashってやつかな
      • nixpkgs.url にセミコロンなかった プログラミング引退
        • でもエラーは治らない(ファイル関連のエラーなのでそれはそう)
      • "nixos-rebuild" getting status of flake.nix no such file or directory で検索して Nix flakes /nix/store/***-source no such file or directory - #21 by softinio - Help - NixOS Discourse を発見
      • just adding flake.nix file to git , i.e. git add flake.nix solved this for me.

      • ありがとう……ありがとう……
    • めっちゃがんばってビルドしてくれてる 何やってるんだろ Flakeに切り替えた関係で1からビルドしてるとか?しらんけど
  • 記事だとzshを有効化したりしているけど、とりあえず飛ばして、Hyprlandの起動を第1目標とする
  • Nix – Hyprland Wiki
  • Home Managerがoptionalになってるけど、まあ導入するか
    • flake.nixのinputsにhome-managerを追加して、outputsにhomeConfigurationsを追加
      • inheritって同名変数に代入するシンタックスシュガーだっけ
      • importは?
        echo "x: x + 1" > file.nix
        import ./file.nix 1
        2
        • import inputs.nixpkgs {...} って関数実行してるようなもの?
        • まあ本質じゃないし後回しかな、後で理解できたらします
    • home.stateVersion はconfigurations.nixに書いてあった24.05にした
    • rm flake.lock && git add . && nix run nixpkgs#home-manager -- switch --flake .#myHome
      • セミコロン無しでエラーでて爆笑 これ何回繰り返せば良いんですか
  • Hyprland on Home Manager – Hyprland Wiki
    • wayland.windowManager.hyprland.enable = true; でいけるらしい あの、どこに書けば?
      • hyprland.nix を作ってこれ↑を書き、flake.nixのhomeConfigurations.modulesに ./hyprland.nix を追記した これでどうですか
    • do not have any configuration って言われた
    • hyprland で起動しようとしたらクラッシュした
      • クラッシュログ見たら wlr_gles2_renderer_create_with_drm_fd() failed! らしい VirtualBoxのドライバかなあ
    • nixos-hardware 入れれば良いんじゃね?と思ったけど、どのモジュール入れたら良いのかわかんねえ
    • virtualisation.virtualbox.guest.enable = true; をconfigurations.nixに書いてrebuildして再起動したけど駄目だった
    • VirtualBoxの設定で3Dアクセラレーションを有効化したけどだめ そりゃそうだ(LiveでPlasma動いてたし)
    • Master tutorial – Hyprland Wikiに “VM?” という章があり、“In a VM, make sure you have 3D acceleration enabled in your virtio config (or virt-manager) otherwise Hyprland will not work”と書いてあった はい……
      • Virt-manager - NixOS Wiki に従い、virtualisation.libvirtd.enable = true;programs.virt-manager.enable = true; を追記
        • なんかビルド中にsambaとかqemuとかいう文字列が見えるんですが……
      • これでもだめだった
    • https://search.nixos.org/options というのが便利
  • SDDMを有効化したらどうにかなる説(根本的解決にはならないが)
    • home-managerで導入したせいでwayland-sessionsが/home/watasuke/.nix-profile/shareに置かれています
    • configurations.nixのほうで programs.hyprland.enable = true; する
    • hyprlandも起動した!
      • なんかカーソルの軌跡が残ってしまって謎ではあるが
  • ターミナルエミュレータなんもない
    • https://home-manager-options.extranix.com/ で検索できる
      • chromeで検索しても出てこないんですが……
    • Weztermを入れよう
      • dotfilesはまだAlacrittyだけど、WindowsではすでにWeztermを使っているから
    • 起動しねえ!!!
    • kitty入れたけど、一瞬ウィンドウが出てすぐ閉じる
    • xtermは入れ方がわかりません……