| (同じ利用者による、間の19版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
全てのLinuxディストリビューションには、何らかのターミナルが既にプレインストールされていることが多い。<br> | |||
ターミナルは、コマンドの実行、ファイルの操作、ソフトウェアのインストール、リモート接続等、日常的な管理作業の基盤となる。<br> | |||
<br> | <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> | ||
| 46行目: | 58行目: | ||
*# GNOME Shellを再起動することにより、メニューバーを恒久的に追加するだけでなく、欠落していたチェックボックスも追加される。 | *# GNOME Shellを再起動することにより、メニューバーを恒久的に追加するだけでなく、欠落していたチェックボックスも追加される。 | ||
*# GNOME Terminalの画面を右クリックして、[Preferences] - [General]を選択して、[Show menubar by default in new terminals]チェックボックスにチェックを入力する。 | *# 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> | ||
| 60行目: | 83行目: | ||
== ST == | == ST == | ||
STのビルドに必要な依存関係のライブラリをインストールする。<br> | STのビルドに必要な依存関係のライブラリをインストールする。<br> | ||
# | # RHEL | ||
sudo | sudo dnf install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel | ||
# SUSE | # SUSE | ||
| 76行目: | 99行目: | ||
<br> | <br> | ||
STをビルドおよびインストールする。<br> | STをビルドおよびインストールする。<br> | ||
make clean install DESTDIR= | make clean install DESTDIR=<STのインストールディレクトリ> | ||
<br><br> | <br><br> | ||
== Kitty == | == Kitty == | ||
==== 実行ファイルをダウンロードする場合 ==== | ==== 実行ファイルをダウンロードする場合 ==== | ||
[https://github.com/kovidgoyal/kitty/releases KittyのGithub] | [https://github.com/kovidgoyal/kitty/releases KittyのGithub]にアクセスして、<u>Linux <アーキテクチャ名> binary bundle</u>をダウンロードする。<br> | ||
ダウンロードしたファイルを解凍する。<br> | ダウンロードしたファイルを解凍する。<br> | ||
tar xf kitty-<バージョン>- | tar xf kitty-<バージョン>-<アーキテクチャ名>.txz | ||
cd kitty-<バージョン>- | cd kitty-<バージョン>-<アーキテクチャ名> | ||
<br> | <br> | ||
解凍したディレクトリを任意のディレクトリに配置する。<br> | 解凍したディレクトリを任意のディレクトリに配置する。<br> | ||
mv kitty-<バージョン>- | mv kitty-<バージョン>-<アーキテクチャ名> <Kittyのインストールディレクトリ> | ||
<br> | <br> | ||
==== ソースコードからインストールする場合 ==== | ==== ソースコードからインストールする場合 ==== | ||
Kittyのビルドに必要な依存関係のライブラリをダウンロードする。<br> | Kittyのビルドに必要な依存関係のライブラリをダウンロードする。<br> | ||
| 95行目: | 119行目: | ||
libXcursor-devel libXrandr-devel Mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libX11-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 \ | libxcb-devel fontconfig-devel liblcms2-devel libcanberra-devel ImageMagick-devel \ | ||
python311-devel python3-Pygments sphinx libsphinxclient-devel python3-Sphinx \ | |||
go1.21 \ | go1.21 \ | ||
libb2-devel librsync-devel wayland-devel wayland-protocols-devel | libb2-devel librsync-devel wayland-devel wayland-protocols-devel | ||
| 135行目: | 159行目: | ||
vi ~/.local/share/applications/Kitty.desktop | vi ~/.local/share/applications/Kitty.desktop | ||
<br> | <br> | ||
<syntaxhighlight lang="ini"> | |||
# ~/.local/share/applications/Kitty.desktopファイル | # ~/.local/share/applications/Kitty.desktopファイル | ||
| 147行目: | 172行目: | ||
Icon=/<Kittyのインストールディレクトリ>/share/icons/hicolor/scalable/apps/kitty | Icon=/<Kittyのインストールディレクトリ>/share/icons/hicolor/scalable/apps/kitty | ||
Categories=System;TerminalEmulator; | Categories=System;TerminalEmulator; | ||
</syntaxhighlight> | |||
<br> | <br> | ||
Kittyを使用したURLランチャーのデスクトップエントリファイルを作成する。<br> | Kittyを使用したURLランチャーのデスクトップエントリファイルを作成する。<br> | ||
vi ~/.local/share/applications/Kitty-Open.desktop | vi ~/.local/share/applications/Kitty-Open.desktop | ||
<br> | <br> | ||
<syntaxhighlight lang="ini"> | |||
# ~/.local/share/applications/Kitty-Open.desktopファイル | # ~/.local/share/applications/Kitty-Open.desktopファイル | ||
| 165行目: | 192行目: | ||
NoDisplay=true | NoDisplay=true | ||
MimeType=image/*;application/x-sh;application/x-shellscript;inode/directory;text/*;x-scheme-handler/kitty; | 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> | <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 ===== | ===== 変数term ===== | ||
変数<code>term</code>は、様々なソフトウェアがターミナルの機能や動作に関する情報を取得するために使用される。<br> | 変数<code>term</code>は、様々なソフトウェアがターミナルの機能や動作に関する情報を取得するために使用される。<br> | ||
| 202行目: | 271行目: | ||
==== Alacrittyのインストール ==== | ==== Alacrittyのインストール ==== | ||
ビルドに必要な依存関係のライブラリをインストールする。<br> | ビルドに必要な依存関係のライブラリをインストールする。<br> | ||
# | # RHEL | ||
sudo | sudo dnf install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel xcb-util-devel | ||
sudo | 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> | ||
| 224行目: | 293行目: | ||
# Wayland環境の場合 | # Wayland環境の場合 | ||
cargo build --release --features=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> | ||
| 229行目: | 303行目: | ||
生成されたAlacrittyファイルを任意のディレクトリに配置する。<br> | 生成されたAlacrittyファイルを任意のディレクトリに配置する。<br> | ||
mv target/release/alacritty <任意のディレクトリ> | 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> | <br> | ||
| 252行目: | 332行目: | ||
make -j $(nproc) | make -j $(nproc) | ||
make install | 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> | <br> | ||
tmuxの設定ファイル(~/.tmux.confファイル)を作成する。<br> | tmuxの設定ファイル(~/.tmux.confファイル)を作成する。<br> | ||
| 259行目: | 350行目: | ||
# Set prefix key to c-f instead of default c-b | # Set prefix key to c-f instead of default c-b | ||
unbind C-b | unbind C-b # [Ctrl] + [b]キーを無効にする | ||
set -g prefix C-f | set -g prefix C-f # [Ctrl] + [f]キーを有効にする | ||
bind C-f send-prefix | bind C-f send-prefix # [Ctrl] + [f]キーを有効にする | ||
set-option -g default-shell <シェルの実行ファイルのパス 例. /usr/bin/zsh> | set-option -g default-shell <シェルの実行ファイルのパス 例. /usr/bin/zsh> | ||
| 385行目: | 476行目: | ||
/<Alacrittyのインストールディレクトリ>/alacritty -e /<tmuxのインストールディレクトリ>/bin/tmux | /<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__ | ||
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||