(同じ利用者による、間の43版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
全てのLinuxディストリビューションには、ターミナルが既にプレインストールされている。<br>
全てのLinuxディストリビューションには、何らかのターミナルが既にプレインストールされていることが多い。<br>
ターミナルは、コマンドの実行、ファイルの操作、ソフトウェアのインストール、リモート接続等、日常的な管理作業の基盤となる。<br>
<br>
<br>
ここでは、多くのLinuxディストリビューションで使用することができるターミナルについて記載する。<br>
Linuxでは、デスクトップ環境に標準で付属するターミナルのほか、軽量性、高速描画、拡張性、カスタマイズ性を重視した多様なターミナルを選択することができる。<br>
利用するターミナルにより、設定方法、ショートカットキー、対応する描画方式、設定ファイルの形式が大きく異なる。<br>
そのため、用途や作業環境に応じて、適切なターミナルを選択することが重要である。<br>
<br>
Gnome Terminalのように標準的で扱いやすいターミナルもあれば、STのように最小構成を重視したターミナルも存在する。<br>
Kitty、Alacritty、Ghosttyのように、高速描画や近代的な機能を重視したターミナルも広く利用されている。<br>
<br>
また、Drop Down Terminalのように、デスクトップ環境へ統合して素早く呼び出すことを主目的とした拡張機能も存在する。<br>
<br>
近年のターミナルでは、GPU描画、Wayland対応、独自の設定体系、外部ツールとの連携等が導入方法に影響する。<br>
<br>
また、目的のターミナルが既に利用可能な場合でも、追加設定や外部ツールの導入により、作業効率を大きく改善できることがある。<br>
<br><br>
<br><br>


26行目: 38行目:
<br>
<br>
これにより、Gnome Terminalを起動する時、Zsh等のシェルが使用できる。<br>
これにより、Gnome Terminalを起動する時、Zsh等のシェルが使用できる。<br>
<br>
==== メニューバーの表示 ====
初期設定では、GNOME Terminalはメニューバーを表示しない。<br>
<br>
GNOME Terminalの画面を右クリックして、コンテキストメニューから一時的にメニューバーを表示することができる。<br>
しかし、次回のGNOME Terminalの起動ではメニューバーが非表示に戻ってしまう。<br>
<br>
これは、GNOME Terminalにある[編集]メニューバー - [環境設定]で表示される[環境設定]ダイアログボックスに、必要なチェックボックスがないことが原因である。<br>
<br>
この問題を解決するには、以下に示す2通りの方法がある。<br>
* 方法 1 : コマンドから実行する方法
*# ターミナルセッションで次のコマンドを実行する。
*#: <code>gsettings set org.gnome.Terminal.Legacy.Settings headerbar false</code>
*# GNOME Shellを再起動することにより、メニューバーを恒久的に追加するだけでなく、欠落していたチェックボックスも追加される。
*# GNOME Terminalの画面を右クリックして、[Preferences] - [General]を選択して、[Show menubar by default in new terminals]チェックボックスにチェックを入力する。
*: <br>
* 方法2 : dconfから設定する方法
*# まず、dconf-editorを起動した後、<code>org.gnome.Terminal.Legacy.Settings:headerbar</code>に移動して、値を<code>false</code>に設定する。
*# GNOME Shellを再起動することにより、メニューバーを恒久的に追加するだけでなく、欠落していたチェックボックスも追加される。
*# GNOME Terminalの画面を右クリックして、[Preferences] - [General]を選択して、[Show menubar by default in new terminals]チェックボックスにチェックを入力する。
<br>
==== GNOME Teriminalの初期化 ====
GNOME Terminalの設定を初期化する場合、<code>gsettings</code>コマンドを実行する。<br>
<br>
GNOME Terminalのプロファイル設定を再帰的にリセットする。<br>
フォント、色、スクロール動作等のプロファイル関連の設定がデフォルト値に戻る。<br>
gsettings reset-recursively org.gnome.Terminal.ProfilesList
<br>
GNOME Terminalのプロファイルリストをリセットする。<br>
カスタムで作成したプロファイルがある場合、それらが削除されて、デフォルトのプロファイルのみが残る。<br>
gsettings reset-recursively org.gnome.Terminal.Legacy.Profile
<br><br>
<br><br>


40行目: 83行目:
== ST ==
== ST ==
STのビルドに必要な依存関係のライブラリをインストールする。<br>
STのビルドに必要な依存関係のライブラリをインストールする。<br>
  # CentOS
  # RHEL
  sudo yum install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel
  sudo dnf install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel
   
   
  # SUSE
  # SUSE
56行目: 99行目:
<br>
<br>
STをビルドおよびインストールする。<br>
STをビルドおよびインストールする。<br>
  make clean install DESTDIR=$HOME/InstallSoftware/ST
  make clean install DESTDIR=<STのインストールディレクトリ>
<br><br>
 
== Kitty ==
==== 実行ファイルをダウンロードする場合 ====
[https://github.com/kovidgoyal/kitty/releases KittyのGithub]にアクセスして、<u>Linux <アーキテクチャ名> binary bundle</u>をダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf kitty-<バージョン>-<アーキテクチャ名>.txz
cd kitty-<バージョン>-<アーキテクチャ名>
<br>
解凍したディレクトリを任意のディレクトリに配置する。<br>
mv kitty-<バージョン>-<アーキテクチャ名> <Kittyのインストールディレクトリ>
<br>
 
==== ソースコードからインストールする場合 ====
Kittyのビルドに必要な依存関係のライブラリをダウンロードする。<br>
<u>ただし、最新のKittyでは、Python 3.7以降とGo 1.20以降が必要となることに注意する。</u><br>
sudo zypper install gcc pkg-config dbus-1-devel libXcursor-devel libXrandr-devel libXi-devel libXinerama-devel \
                    libXcursor-devel libXrandr-devel Mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libX11-devel \
                    libxcb-devel fontconfig-devel liblcms2-devel libcanberra-devel ImageMagick-devel \
                    python311-devel python3-Pygments sphinx libsphinxclient-devel python3-Sphinx \
                    go1.21 \
                    libb2-devel librsync-devel wayland-devel wayland-protocols-devel
<br>
もし、パッケージ管理システムが提供しているlibRsyncライブラリが古い場合、libRsyncライブラリを手動でインストールする必要がある。<br>
[https://github.com/librsync/librsync/releases libRsyncのGithub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf librsync-<バージョン>.tar.gz
cd librsync-<バージョン>.tar.gz
<br>
libRsyncをビルドおよびインストールする。<br>
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=<libRsyncのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)
make install
<br>
[https://github.com/kovidgoyal/kitty/releases KittyのGithub]にアクセスして、Kittyのソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf kitty-<バージョン>-x86_64.txz
cd kitty-<バージョン>-x86_64
<br>
Kittyをビルドおよびインストールする。<br>
export LD_LIBRARY_PATH="/<libRsyncのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH" && \
export CFLAGS="-I/<libRsyncのインストールディレクトリ>/include $CFLAGS" && \
./setup.py linux-package --prefix=<Kittyのインストールディレクトリ>
# または
export LD_LIBRARY_PATH="/<libRsyncのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH" && \
export CFLAGS="-I/<libRsyncのインストールディレクトリ>/include $CFLAGS" && \
make -j $(nproc)
<br>
<code>make</code>コマンドを実行してビルドした場合、Kittyの実行ファイルは以下に示すパスに存在する。<br>
/<Kittyのソースコードディレクトリ>/kitty/launcher/kitty
<br>
 
==== 共通 ====
Kittyのデスクトップエントリファイルを作成する。<br>
vi ~/.local/share/applications/Kitty.desktop
<br>
<syntaxhighlight lang="ini">
# ~/.local/share/applications/Kitty.desktopファイル
[Desktop Entry]
Version=1.0
Type=Application
Name=kitty
GenericName=Terminal emulator
Comment=Fast, feature-rich, GPU based terminal
TryExec=/<Kittyのインストールディレクトリ>/bin/kitty
Exec=/<Kittyのインストールディレクトリ>/bin/kitty
Icon=/<Kittyのインストールディレクトリ>/share/icons/hicolor/scalable/apps/kitty
Categories=System;TerminalEmulator;
</syntaxhighlight>
<br>
Kittyを使用したURLランチャーのデスクトップエントリファイルを作成する。<br>
vi ~/.local/share/applications/Kitty-Open.desktop
<br>
<syntaxhighlight lang="ini">
# ~/.local/share/applications/Kitty-Open.desktopファイル
[Desktop Entry]
Version=1.0
Type=Application
Name=kitty URL Launcher
GenericName=Terminal emulator
Comment=Open URLs with kitty
TryExec=/<Kittyのインストールディレクトリ>/bin/kitty
Exec=/<Kittyのインストールディレクトリ>/bin/kitty +open %U
Icon=/<Kittyのインストールディレクトリ>/share/icons/hicolor/scalable/apps/kitty
Categories=System;TerminalEmulator;
NoDisplay=true
MimeType=image/*;application/x-sh;application/x-shellscript;inode/directory;text/*;x-scheme-handler/kitty;
</syntaxhighlight>
<br>
Fishを使用している場合、Kittyの設定ファイルをFishの設定ディレクトリへコピーする。<br>
cp /<Kittyのインストールディレクトリ>/lib/kitty/shell-integration/fish/vendor_completions.d/* \
    ~/.config/fish/completions/
cp /<Kittyのインストールディレクトリ>/lib/kitty/shell-integration/fish/vendor_conf.d/* \
    ~/.config/fish/conf.d/
<br>
==== 設定 ====
===== スクロールバー =====
Kittyのデフォルト設定では、スクロールバーは必要な場合のみ表示される。<br>
<br>
常にスクロールバーを表示する場合は、Kittyの設定ファイル (~/.config/kitty/kitty.conf) に以下に示す設定追加する。<br>
<br>
scrollbar always
# スクロールバーの外観もカスタマイズ可能
scrollbar_fill_bg      #505050
scrollbar_thumb_bg      #808080
scrollbar_padding      3
scrollbar_margin        3
<br>
設定を有効にする場合は、Kittyを再起動する必要がある。<br>
<br>
* キーボードでのスクロール
*: [Ctrl] + [Shift] + [Up] または [Ctrl] + [Shift] + [Down]
*: [Ctrl] + [Shift] + [Page Up] または [Ctrl] + [Shift] + [Page Down]
*: <br>
* マウスでのスクロール
*: マウスホイール
*: トラックパッドの2本指スクロール
<br>
 
==== エラー ====
===== 日本語入力ができない場合 =====
IBus IMEフレームワークのKittyサポートは、デフォルトでは無効になっている。<br>
これを有効にするには、環境変数<code>GLFW_IM_MODULE</code>を<code>ibus</code>に設定する。<br>
<syntaxhighlight lang="sh">
export GLFW_IM_MODULE=ibus
</syntaxhighlight>
<br>
互換性のあるIBusインターフェースが提供されているため、Fcitx5でも動作する。<br>
<br>
===== 変数term =====
変数<code>term</code>は、様々なソフトウェアがターミナルの機能や動作に関する情報を取得するために使用される。<br>
実行するソフトウェアやターミナルの違いにより、キーの操作、色、その他機能まで、不具合を起こす可能性がある。<br>
<br>
Kittyの初期設定では、変数<code>term</code>の値は<code>xterm-kitty</code>となっている。<br>
もし、なんらかのソフトウェアのコマンドを実行する場合、以下に示すようなエラーメッセージが表示されることがある。<br>
'xterm-kitty': unknown terminal type.
<br>
この時、Kittyの設定ファイルに変数<code>term</code>の値を、<code>xterm</code>または<code>xterm-256color</code>に設定する。<br>
vi ~/.config/kitty/kitty.conf
<br>
# ~/.config/kitty/kitty.confファイル
term xterm-256color
# または
term xterm
<br>
===== SSH接続 =====
kittyを使用して、terminfoを持たないリモートにSSH接続する場合、矢印キー、Backspace、Delete、Home / End等のキーが効かない場合がある。<br>
<br>
これを修正するには、以下に示す手順に従う。<br>
# まず、リモート先のPCに接続する。
# 次に、リモート先のPCにおいて、~/.terminfo/xディレクトリ(Linuxの場合)、または、~/.terminfo/78ディレクトリ(Macの場合)を作成する。
#: <code> mkdir -p ~/.terminfo/{78,x}</code>
# 最後に、Kittyのインストールディレクトリにあるshare/terminfo/x/xterm-kittyファイルを、上記で作成したディレクトリへコピーする。
#: <code>scp /<Kittyのインストールディレクトリ>/share/terminfo/x/xterm-kitty  <リモート先PCのユーザ名>@<リモート先PCのホスト名またはIPアドレス>:~/.terminfo/x</code>
<br>
または、上記の設定を自動化するための<code>kitty +kitten</code>オプションを付加して、SSH接続を行う。<br>
<u>ただし、<code>kitty +kitten</code>オプションと<code>SSHPass</code>ソフトウェアは同時に使用できないことに注意する。</u><br>
kitty +kitten ssh <ユーザ名>@<ホスト名またはIPアドレス> -p <ポート番号>
<br><br>
<br><br>


== Alacritty ==
== Alacritty ==
==== Alacrittyのインストール ====
ビルドに必要な依存関係のライブラリをインストールする。<br>
ビルドに必要な依存関係のライブラリをインストールする。<br>
  # CentOS
  # RHEL
  sudo yum install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel xcb-util-devel
  sudo dnf install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel xcb-util-devel
  sudo yum group install "Development Tools"
  sudo dnf group install "Development Tools"
   
   
  # SUSE
  # SUSE
  sudo zypper install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel
  sudo zypper install gcc13 gcc13-c++ cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel
<br>
<br>
[https://github.com/alacritty/alacritty/releases AlacrittyのGithub]にアクセスして、ソースコードをダウンロードする。<br>
[https://github.com/alacritty/alacritty/releases AlacrittyのGithub]にアクセスして、ソースコードをダウンロードする。<br>
78行目: 288行目:
<br>
<br>
Alacrittyをビルドする。<br>
Alacrittyをビルドする。<br>
  cargo build --release
# X11環境の場合
  cargo build --release --features=x11
# Wayland環境の場合
cargo build --release --features=wayland
<br>
GCC / G++のバージョンを指定する場合は、以下に示すオプションを付加する。<br>
# GCC 13 / G++ 13を使用する場合
CC=/usr/bin/gcc-13 CXX=/usr/bin/g++-13 \
cargo build --release --features=x11
<br>
<br>
ビルドが正常に終了した場合、プロジェクトディレクトリにtarget/release/alacrittyファイルが生成される。<br>
ビルドが正常に終了した場合、プロジェクトディレクトリにtarget/release/alacrittyファイルが生成される。<br>
<br>
生成されたAlacrittyファイルを任意のディレクトリに配置する。<br>
mv target/release/alacritty <任意のディレクトリ>
<br>
<u>※注意</u><br>
<u>Alacritty 0.13以降、設定ファイルのパスが<u>~/.config/alacritty/alacritty.yml</u>ファイルから<u>~/.config/alacritty/alacritty.toml</u>へ変更された。</u><br>
<u>もし、Alacritty 0.12以前からアップデートしている場合は、<code>alacritty migrate</code>コマンドを実行して設定ファイルをアップデートする。</u><br>
# 設定ファイルのアップデート
alacritty migrate
<br>
==== タブ機能の有効化 ====
Alacrittyはタブ機能が存在しない。<br>
そのため、タブ機能を有効化するには、tmuxを使用する必要がある。<br>
<br>
tmuxのビルドに必要な依存関係のライブラリをインストールする。<br>
sudo zypper install make pkg-config bison ncurses-devel libevent-devel
<br>
まず、[https://github.com/tmux/tmux/releases tmuxのGithub]にアクセスして、ソースコードをダウンロードする。<br>
https://github.com/tmux/tmux/releases/
<br>
ダウンロードしたファイルを解凍する。<Br>
tar xf tmux-<バージョン>.tar gz
cd tmux-<バージョン>
<br>
ビルド用ディレクトリを作成する。<br>
mkdir build && cd build
<br>
tmuxをビルドおよびインストールする。<br>
../configure --prefix=<tmuxのインストールディレクトリ>
make -j $(nproc)
make install
<br>
* タブ
** [Ctrl] + [b]キーを同時押下して、[C]キーを押下することにより、新しいタブを作成することができる。
** [Ctrl] + [b]キーを同時押下して、[N]キーまたは[P]キーを押下することにより、タブを循環させることができる。
** [Ctrl] + [b]キーを同時押下して[Shift] + [&]キーを押下、または、[Ctrl] + [b]キーを同時押下してタブを閉じることができる。
** [Ctrl] + [b]キーを同時押下して[&]キーを押下、または、[Ctrl] + [b]キーを同時押下してウィンドウを閉じることができる。
** [Ctrl] + [b]キーを同時押下して[W]キーを押下してタブの一覧を表示することができる。
* 分割
** [Ctrl] + [b]キーを同時押下して[Shift] + ["]キーを同時押下することにより、タブを水平分割することができる。
** [Ctrl] + [b]キーを同時押下して[Shift] + [%]キーを同時押下することにより、タブを垂直分割することができる。
** [Ctrl] + [b]キーを同時押下して[x]キーを押下することにより、タブの分割を解除することができる。
<br>
tmuxの設定ファイル(~/.tmux.confファイル)を作成する。<br>
vi ~/.tmux.conf
<br>
# ~/.tmux.confファイル
# Set prefix key to c-f instead of default c-b
unbind C-b            # [Ctrl] + [b]キーを無効にする
set -g prefix C-f    # [Ctrl] + [f]キーを有効にする
bind C-f send-prefix  # [Ctrl] + [f]キーを有効にする
set-option -g default-shell <シェルの実行ファイルのパス  例. /usr/bin/zsh>
# toogle last window by hitting again C-f
bind-key C-f last-window
# if multiple clients are attached to the same window, maximize it to the bigger one
set-window-option -g aggressive-resize
# Start windows and pane numbering with index 1 instead of 0
set -g base-index 1
setw -g pane-base-index 1
# re-number windows when one is closed
set -g renumber-windows on
# word separators for automatic word selection
setw -g word-separators ' @"=()[]_-:,.'
setw -ag word-separators "'"
# Show times longer than supposed
set -g display-panes-time 2000
# tmux messages are displayed for 4 seconds
set -g display-time 4000
# {n}vim compability
set-option -ga terminal-overrides ",xterm-256color:Tc"
set -g default-terminal "screen-256color"
# Split horiziontal and vertical splits, instead of % and ". We also open them in the same directory.
# Because we use widescreens nowadays, opening a vertical split that takes half of the screen is not worth. For vertical we only open 100 lines width, for horizontal it's 20 columns.
bind-key v split-window -h -l 100 -c '#{pane_current_path}'
bind-key s split-window -v -l 30 -c '#{pane_current_path}'
# Pressing Ctrl+Shift+Left (will move the current window to the left. Similarly right. No need to use the modifier (C-b).
bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1
# Source file
unbind r
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` and `Space to also use copy-pipe
unbind -T copy-mode-vi Enter
unbind -T copy-mode-vi Space
bind-key -T edit-mode-vi Up send-keys -X history-up
bind-key -T edit-mode-vi Down send-keys -X history-down
# setup 'v' to begin selection as in Vim
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
# copy text with `y` in copy mode
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
# copy text with mouse selection without pressing any key
bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-selection-and-cancel
# emacs key bindings in tmux command prompt (prefix + :) are better than vi keys, even for vim users
set -g status-keys emacs
# focus events enabled for terminals that support them
set -g focus-events on
# Sync panes (Send input to all panes in the window). When enabled, pane borders become red as an indication.
bind C-s if -F '#{pane_synchronized}' \
                'setw synchronize-panes off; \
                setw pane-active-border-style fg=colour63,bg=default; \
                setw pane-border-format      " #P "' \
                'setw synchronize-panes on; \
                setw pane-active-border-style fg=red; \
                setw pane-border-format      " #P - Pane Synchronization ON "'
# Faster command sequence
set -s escape-time 0
# Have a very large history
set -g history-limit 1000000
# Mouse mode on
set -g mouse on
# Set title
set -g set-titles on
set -g set-titles-string "#T"
# Equally resize all panes
bind-key = select-layout even-horizontal
bind-key | select-layout even-vertical
# Resize panes
bind-key J resize-pane -D 10
bind-key K resize-pane -U 10
bind-key H resize-pane -L 10
bind-key L resize-pane -R 10
# Select panes
# NOTE(arslan): See to prevent cycling https://github.com/tmux/tmux/issues/1158
bind-key j select-pane -D
bind-key k select-pane -U
bind-key h select-pane -L
bind-key l select-pane -R
# Disable confirm before killing
bind-key x kill-pane
# List of plugins
# see this https://github.com/tmux-plugins/tpm to installation
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-open'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
<br>
tmuxでタブ機能を有効化して、Alacrittyを起動する。<br>
/<Alacrittyのインストールディレクトリ>/alacritty -e /<tmuxのインストールディレクトリ>/bin/tmux
<br><br>
<br><br>
== Ghostty ==
==== Ghosttyとは ====
Ghosttyは、GPUベースの高速ターミナルエミュレータである。<br>
ネイティブのGUIレンダリングパイプラインを持ち、従来のターミナルと比較して高い描画性能を実現する。<br>
<br>
Ghosttyのビルドには特定のZigコンパイラのバージョンが必要であり、これがディストリビューション間で大きな違いを生じさせている。<br>
RHELではコミュニティがメンテナンスするパッケージが利用可能である一方、SUSEでは公式リポジトリからの提供が困難となっている。<br>
このため、RHELとSUSEでは実際の導入方法が異なり、それぞれの環境に応じた手順が必要である。<br>
<br>
Zigのバージョン要件は、Ghosttyのバージョンに応じて変化する。<br>
例えば、Ghostty 1.2ではZig 0.14.1、Ghostty 1.3ではZig 0.15.2が必要とされるリリースがある。<br>
<u>そのため、ビルドする場合は、Ghosttyのバージョンに対応したZigがインストールされていることを確認する必要がある。</u><br>
<br>
Ghosttyの最新情報やリリース詳細は、公式Webサイトやリリースノートを参照することを推奨する。<br>
<br>
==== RHEL ====
RHEL環境では、公式提供ではなく、コミュニティがメンテナンスするCOPRリポジトリを利用する方法がある。<br>
raboo/ghosttyが提供するパッケージを使用するが、これは公式ではなくコミュニティ管理のものである。<br>
<br>
利用するにあたり、EPELおよびCOPRの有効化が必要となる場合がある。<br>
利用可否は対象のRHELバージョン、EPELの有効化状況、COPR側のビルド状態に依存する。<br>
<br>
COPRの詳細を知りたい場合は、[https://copr.fedorainfracloud.org/coprs/raboo/ghostty%20raboo/ghostty COPRの公式Webサイト]を参照すること。<br>
<br>
まず、COPRリポジトリを有効化し、Ghosttyをインストールする。<br>
<br>
sudo dnf copr enable raboo/ghostty
sudo dnf install ghostty
<br>
インストールが完了した後、Ghosttyのバージョンを確認する。<br>
<br>
ghostty --version
<br>
==== SUSE ====
SUSEの公式リポジトリでは、パッケージが固定されたZigバージョンに依存できないというポリシーのため、Ghosttyのパッケージ提供が停止された。<br>
そのため、SUSE系環境ではソースコードからのビルドが現実的な導入方法となる。<br>
<br>
SUSEでは、Zigによるビルドの時に環境変数や依存ライブラリの有無に注意が必要である。<br>
<br>
ソースコードからビルドする場合、GitHubが自動生成するtarballではなく、release.files.ghostty.orgが配布する公式のTarballを使用して、Zigを使用してビルドすることが推奨される。<br>
公式のTarballには、必要なサブモジュールや生成ファイルが含まれており、ビルドの再現性が高い。<br>
<br>
SUSEではgtk4-layer-shellがパッケージングされていないため、ビルド時に <code>-fno-sys=gtk4-layer-shell</code> オプションを指定する必要がある。<br>
<br>
まず、ビルドに必要な依存パッケージをインストールする。<br>
<br>
sudo zypper install gettext pkgconf ncurses-devel gtk4-devel libadwaita-devel
<br>
Zigは、対象とするGhosttyリリースが要求するバージョンを別途用意して、<code>zig version</code> コマンドで確認してからビルドする。<br>
<br>
* Zigの公式Webサイト
*: https://ziglang.org/download/
<br>
次に、release.files.ghostty.orgから公式のTarballをダウンロードして、解凍する。<br>
<br>
* Ghosttyの公式Webサイト
*: https://ghostty.org/download
<br>
wget https://release.files.ghostty.org/<バージョン  例: 1.3.1>/ghostty-<バージョン  例: 1.3.1>.tar.gz
tar xf ghostty-<バージョン>.tar.gz
cd ghostty-<バージョン>
<br>
Ghosttyをビルドする。<br>
<br>
zig build -p <Ghosttyのインストールディレクトリ> -Doptimize=ReleaseFast -fno-sys=gtk4-layer-shell
<br>
ビルドが完了した後、Ghosttyのバージョンを確認する。<br>
<br>
/<Ghosttyのインストールディレクトリ>/bin/ghostty --version
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]