この記事は、Nixが大好きなしがない大学生が書いたものです。そのため、内容に誤りがあったり、表現が正しくないことがあるかもしれません。ご了承ください。
GhosttyをNixOSで使用する方法は、公式ドキュメントにも説明があります。この記事では、Ghosttyのconfigをdotfilesで管理する方法を含めて説明しようと思います。
公式ドキュメントの該当箇所は、以下のリンクから見ることができます。
前提
私のdotfilesはflakeとhome-managerを使っています。そのため、この2つを使っていることを前提として説明していきます。
Nix言語を読むのに馴れている方は、以下の私のdotfilesのレポジトリのリンクを見て導入していただくと良いかもしれません。
私のdotfilesはまだまだ発展途上なので、内容がいろいろ変化していく可能性が高いです。そのため、READMEの内容が追従しきれていない可能性があります。ご注意ください。
環境
OS: NixOS 25.05.20241213.71a6392 (Warbler) x86_64
Host: 20QES11500 (ThinkPad X1 Carbon 7th)
DE: KDE Plasma
導入方法
導入方法は私のdotfilesの構造に依存した方法なので、適宜みなさんのdotfilesの構造に読み変えてください。
1. flake.nixの編集
以下のように記述を追加します。(私のdotfilesの記述を一部省略して書いています。)
私はextraSpecialArgsにusername = "hello"を記述しています。これはhome/home.nixで使用していますので、ご注意ください。
{
inputs = {
...
#ghostty
ghostty = {
url = "github:ghostty-org/ghostty";
};
...
};
outputs = inputs: {
## home-manager ##
homeConfigurations = {
myHomeConfig = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = import inputs.nixpkgs {
system = "x86_64-linux";
...
};
...
extraSpecialArgs = {
inherit inputs;
username = "hello";
};
...
};
};
...
};
}
2. home/home.nixの編集
以下のように記述を追加します。(私のdotfilesの記述を一部省略して書いています。)
私はconfigファイルをhome/config/ghostty/配下に置いています。
ghosttyのconfigは/home/<username>/.config/ghostty/configに置かれるので、targetを/home/${username}/.config/ghostty/configにしています。
# usernameが引数にあることに注意してください!
{ username, ... }:
{
imports = [
./apps.nix
];
home = {
...
#ghostty
file."config" = {
enable = true;
source = ./config/ghostty/config;
target = "/home/${username}/.config/ghostty/config";
};
};
...
}
3. home/app.nixの編集
以下のように記述を追加します。(私のdotfilesの記述を一部省略して書いています。)
{ pkgs, inputs, ... }:
{
...
# Install pkgs
home.packages = with pkgs; [
...
#Ghostty
inputs.ghostty.packages.${pkgs.system}.default
...
];
}
4. home/config/ghostty/configに設定を書いていく
参考までに、私のconfigを載せておきます。以下のconfigをそのまま使用する場合はfont-familyに0xProto Nerd Fontを指定している点に注意してください。
キーバインドについて補足しておくと、私がGhosttyの起動をctrl+alt+tにしているので、他の一部のキーバインドもctrl+alt+何かにしています。
色についても補足しておくと、私はzsh-autosuggestionsを使っているのですが、補完される文字の色が見にくかったので、home/config/zsh/zsh.nixのprograms.zsh.initExtraにZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#586e75"を追記しました。configもpalette = 8=#5d728cで一部の色を調整しています。(こんなに面倒なことをしてでもtheme = Builtin Solarized Darkが良かったんです...)
theme = Builtin Solarized Dark
background-opacity = 0.85
font-family = "0xProto Nerd Font"
palette = 8=#5d728c
# *keybind* #
# create new tab
keybind = ctrl+alt+n=new_tab
# move tabs
keybind = ctrl+alt+left_bracket=previous_tab
keybind = ctrl+alt+right_bracket=next_tab
# close tab
keybind = ctrl+alt+q=close_window
# create new split window
keybind = ctrl+alt+r=new_split:right
keybind = ctrl+alt+l=new_split:left
keybind = ctrl+alt+t=new_split:up
keybind = ctrl+alt+b=new_split:down
# move splited window
keybind = ctrl+alt+right=goto_split:right
keybind = ctrl+alt+left=goto_split:left
keybind = ctrl+alt+up=goto_split:top
keybind = ctrl+alt+down=goto_split:bottom
これでdotfilesの編集は完了です!
終わりに
GhosttyのPrebuilt Ghostty Binaries and PackagesのページにNixOSやVoid Linux などのinstall方法が説明されていることにかなり驚きました。
みなさんも、ぜひGhosttyを使ってみてください!
では、また他の記事でお会いしましょう。
バイバイ (@^^)/~~~