diff --git a/home-manager/programs/gh/common.nix b/home-manager/programs/gh/common.nix new file mode 100644 index 00000000..39776534 --- /dev/null +++ b/home-manager/programs/gh/common.nix @@ -0,0 +1,22 @@ +# 全ホスト共通の gh 設定。 +# oberon は nixpkgs-stable (nixos-25.11) を使うため、ここには stable にも +# 存在するものだけを置く。unstable 限定の拡張は default.nix 側で足す。 +{ pkgs, ... }: +{ + programs.gh-prism.enable = true; + + programs.gh = { + enable = true; + extensions = [ + pkgs.gh-dash + pkgs.gh-poi + ]; + settings = { + git_protocol = "ssh"; + prompt = "enabled"; + aliases = { + co = ''!id="$(gh pr list -L100 | fzf | cut -f1)"; [ -n "$id" ] && gh pr checkout "$id"''; + }; + }; + }; +} diff --git a/home-manager/programs/gh/default.nix b/home-manager/programs/gh/default.nix index 41a70b68..fc0db472 100644 --- a/home-manager/programs/gh/default.nix +++ b/home-manager/programs/gh/default.nix @@ -1,24 +1,18 @@ +# darwin (nixpkgs unstable) 用の gh 設定。 { pkgs, sources, ... }: let gh-pr-graph = import ./gh-pr-graph.nix { inherit pkgs sources; }; in { - programs.gh-prism.enable = true; + imports = [ ./common.nix ]; - programs.gh = { - enable = true; - extensions = [ - pkgs.gh-dash - pkgs.gh-poi - pkgs.gh-stack - gh-pr-graph - ]; - settings = { - git_protocol = "ssh"; - prompt = "enabled"; - aliases = { - co = ''!id="$(gh pr list -L100 | fzf | cut -f1)"; [ -n "$id" ] && gh pr checkout "$id"''; - }; - }; - }; + # ここに置く拡張が oberon に載らないのは意図的: + # - gh-stack は nixpkgs unstable にしか無い (nixos-25.11 には未収録)。 + # - gh-pr-graph はローカルサーバを立ててブラウザを開くツールなので、 + # ヘッドレスな oberon では使えない。 + # programs.gh.extensions は list なので common.nix の定義とマージされる。 + programs.gh.extensions = [ + pkgs.gh-stack + gh-pr-graph + ]; } diff --git a/home-manager/programs/gh/server.nix b/home-manager/programs/gh/server.nix new file mode 100644 index 00000000..fa2681a9 --- /dev/null +++ b/home-manager/programs/gh/server.nix @@ -0,0 +1,5 @@ +# oberon (サーバー) 用の gh 設定。common.nix だけで完結する。 +{ ... }: +{ + imports = [ ./common.nix ]; +} diff --git a/hosts/oberon/home.nix b/hosts/oberon/home.nix index 9ca9ac07..97de2b4c 100644 --- a/hosts/oberon/home.nix +++ b/hosts/oberon/home.nix @@ -21,7 +21,7 @@ in ../../home-manager/programs/direnv ../../home-manager/programs/fish/server.nix ../../home-manager/programs/fzf - ../../home-manager/programs/gh + ../../home-manager/programs/gh/server.nix ../../home-manager/programs/git/server.nix ../../home-manager/programs/htop ../../home-manager/programs/hunk