この記事は、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を使ってみてください!
では、また他の記事でお会いしましょう。
バイバイ (@^^)/~~~