1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GhosttyをNixOSに導入する方法

Posted at

この記事は、Nixが大好きなしがない大学生が書いたものです。そのため、内容に誤りがあったり、表現が正しくないことがあるかもしれません。ご了承ください。

GhosttyをNixOSで使用する方法は、公式ドキュメントにも説明があります。この記事では、Ghosttyのconfigをdotfilesで管理する方法を含めて説明しようと思います。

公式ドキュメントの該当箇所は、以下のリンクから見ることができます。

前提

私のdotfilesはflakehome-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の記述を一部省略して書いています。)
私はextraSpecialArgsusername = "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-family0xProto Nerd Fontを指定している点に注意してください。
キーバインドについて補足しておくと、私がGhosttyの起動をctrl+alt+tにしているので、他の一部のキーバインドもctrl+alt+何かにしています。
色についても補足しておくと、私はzsh-autosuggestionsを使っているのですが、補完される文字の色が見にくかったので、home/config/zsh/zsh.nixprograms.zsh.initExtraZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#586e75"を追記しました。configpalette = 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のページにNixOSVoid Linux などのinstall方法が説明されていることにかなり驚きました。

みなさんも、ぜひGhosttyを使ってみてください!

では、また他の記事でお会いしましょう。
バイバイ (@^^)/~~~

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?