「インストール - ターミナル」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の40版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
 
全てのLinuxディストリビューションには、ターミナルが既にプレインストールされている。<br>
<br>
ここでは、多くのLinuxディストリビューションで使用することができるターミナルについて記載する。<br>
<br><br>
<br><br>


== Gnome Terminal ==
== Gnome Terminal ==
==== シェルの変更 ====
==== シェルの変更 ====
===== 方法 1 =====
# Gnome Terminalを右クリックまたは[≡]ボタンを押下して、環境設定を開く。
# Gnome Terminalを右クリックまたは[≡]ボタンを押下して、環境設定を開く。
# 設定プロファイルを開くまたは作成する。
# 設定プロファイルを開くまたは作成する。
11行目: 14行目:
# [Custom command]項目に、Zsh等のシェルの実行ファイルのフルパスを入力する。
# [Custom command]項目に、Zsh等のシェルの実行ファイルのフルパスを入力する。
<br>
<br>
===== 方法 2 =====
他の方法として、.bashrcファイルの1行目に、以下の設定を追記する。<br>
他の方法として、.bashrcファイルの1行目に、以下の設定を追記する。<br>
  <syntaxhighlight lang="bash">
  <syntaxhighlight lang="bash">
22行目: 26行目:
<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>
== Drop Down Terminal ==
[https://github.com/anarchodin/gs-extensions-drop-down-terminal Drop Down Terminal]は、Gnome Shellのデスクトップ環境にインストールできるターミナルの拡張機能である。<br>
カスタムスクロールバーの設定、カラースキーム、起動時にカスタムコマンドを起動する機能等、便利な機能が搭載されている。<br>
<br>
また、カスタマイズ性にも優れており、透明度、アニメーション、スクロールバーの表示、ウィンドウのサイズ、ホットキーボタンをカスタマイズすることができる。<br>
<br>
さらに、コマンド機能により、ユーザのデフォルトシェルではなく、カスタムのコマンドライン引数を実行することができる。<br>
URL : https://extensions.gnome.org/extension/442/drop-down-terminal/<br>
<br><br>
== ST ==
STのビルドに必要な依存関係のライブラリをインストールする。<br>
# RHEL
sudo dnf install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel
# SUSE
sudo zypper install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel
<br>
[https://st.suckless.org STの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf st-<バージョン>.tar.gz
cd st-<バージョン>
<br>
または、以下のコマンドを実行して、STのソースコードをダウンロードする。<br>
git clone https://github.com/siduck/st.git ST
cd ST
<br>
STをビルドおよびインストールする。<br>
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>
== Alacritty ==
==== Alacrittyのインストール ====
ビルドに必要な依存関係のライブラリをインストールする。<br>
# RHEL
sudo dnf install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel xcb-util-devel
sudo dnf group install "Development Tools"
# SUSE
sudo zypper install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel
<br>
[https://github.com/alacritty/alacritty/releases AlacrittyのGithub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf alacritty-<バージョン>.tar.gz
cd alacritty-<バージョン>
<br>
または、以下のコマンドを実行して、Alacrittyのソースコードをダウンロードする。<br>
git clone https://github.com/alacritty/alacritty.git Alacritty
cd Alacritty
<br>
Alacrittyをビルドする。<br>
# X11環境の場合
cargo build --release --features=x11
# Wayland環境の場合
cargo build --release --features=wayland
<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>


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

2025年1月7日 (火) 01:44時点における最新版

概要

全てのLinuxディストリビューションには、ターミナルが既にプレインストールされている。

ここでは、多くのLinuxディストリビューションで使用することができるターミナルについて記載する。


Gnome Terminal

シェルの変更

方法 1
  1. Gnome Terminalを右クリックまたは[≡]ボタンを押下して、環境設定を開く。
  2. 設定プロファイルを開くまたは作成する。
  3. [Command]タブを選択する。
  4. [Run a custom command instead of my shell.]チェックボックスにチェックを入力する。
  5. [Custom command]項目に、Zsh等のシェルの実行ファイルのフルパスを入力する。


方法 2

他の方法として、.bashrcファイルの1行目に、以下の設定を追記する。

 [ -n "$GNOME_TERMINAL_SCREEN" ] && [ -x "$(command -v zsh)" ] && exec zsh "$@"


上記の設定の説明を、以下に示す。
まず、[ -n "$GNOME_TERMINAL_SCREEN" ]コマンドを実行して、Gnome Terminalを確認する。
次に、[ -x "$(command -v zsh)" ]コマンドを実行して、Zshのパスが存在するかどうかを確認する。
最後に、exec zsh "$@"コマンドを実行して、Bashと同じ引数でZshを起動する。

これにより、Gnome Terminalを起動する時、Zsh等のシェルが使用できる。

メニューバーの表示

初期設定では、GNOME Terminalはメニューバーを表示しない。

GNOME Terminalの画面を右クリックして、コンテキストメニューから一時的にメニューバーを表示することができる。
しかし、次回のGNOME Terminalの起動ではメニューバーが非表示に戻ってしまう。

これは、GNOME Terminalにある[編集]メニューバー - [環境設定]で表示される[環境設定]ダイアログボックスに、必要なチェックボックスがないことが原因である。

この問題を解決するには、以下に示す2通りの方法がある。

  • 方法 1 : コマンドから実行する方法
    1. ターミナルセッションで次のコマンドを実行する。
      gsettings set org.gnome.Terminal.Legacy.Settings headerbar false
    2. GNOME Shellを再起動することにより、メニューバーを恒久的に追加するだけでなく、欠落していたチェックボックスも追加される。
    3. GNOME Terminalの画面を右クリックして、[Preferences] - [General]を選択して、[Show menubar by default in new terminals]チェックボックスにチェックを入力する。

  • 方法2 : dconfから設定する方法
    1. まず、dconf-editorを起動した後、org.gnome.Terminal.Legacy.Settings:headerbarに移動して、値をfalseに設定する。
    2. GNOME Shellを再起動することにより、メニューバーを恒久的に追加するだけでなく、欠落していたチェックボックスも追加される。
    3. GNOME Terminalの画面を右クリックして、[Preferences] - [General]を選択して、[Show menubar by default in new terminals]チェックボックスにチェックを入力する。


GNOME Teriminalの初期化

GNOME Terminalの設定を初期化する場合、gsettingsコマンドを実行する。

GNOME Terminalのプロファイル設定を再帰的にリセットする。
フォント、色、スクロール動作等のプロファイル関連の設定がデフォルト値に戻る。

gsettings reset-recursively org.gnome.Terminal.ProfilesList


GNOME Terminalのプロファイルリストをリセットする。
カスタムで作成したプロファイルがある場合、それらが削除されて、デフォルトのプロファイルのみが残る。

gsettings reset-recursively org.gnome.Terminal.Legacy.Profile



Drop Down Terminal

Drop Down Terminalは、Gnome Shellのデスクトップ環境にインストールできるターミナルの拡張機能である。
カスタムスクロールバーの設定、カラースキーム、起動時にカスタムコマンドを起動する機能等、便利な機能が搭載されている。

また、カスタマイズ性にも優れており、透明度、アニメーション、スクロールバーの表示、ウィンドウのサイズ、ホットキーボタンをカスタマイズすることができる。

さらに、コマンド機能により、ユーザのデフォルトシェルではなく、カスタムのコマンドライン引数を実行することができる。
URL : https://extensions.gnome.org/extension/442/drop-down-terminal/


ST

STのビルドに必要な依存関係のライブラリをインストールする。

# RHEL
sudo dnf install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel

# SUSE
sudo zypper install xrdb libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel


STの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf st-<バージョン>.tar.gz
cd st-<バージョン>


または、以下のコマンドを実行して、STのソースコードをダウンロードする。

git clone https://github.com/siduck/st.git ST
cd ST


STをビルドおよびインストールする。

make clean install DESTDIR=<STのインストールディレクトリ>



Kitty

実行ファイルをダウンロードする場合

KittyのGithubにアクセスして、Linux <アーキテクチャ名> binary bundleをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf kitty-<バージョン>-<アーキテクチャ名>.txz
cd kitty-<バージョン>-<アーキテクチャ名>


解凍したディレクトリを任意のディレクトリに配置する。

mv kitty-<バージョン>-<アーキテクチャ名> <Kittyのインストールディレクトリ>


ソースコードからインストールする場合

Kittyのビルドに必要な依存関係のライブラリをダウンロードする。
ただし、最新のKittyでは、Python 3.7以降とGo 1.20以降が必要となることに注意する。

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


もし、パッケージ管理システムが提供しているlibRsyncライブラリが古い場合、libRsyncライブラリを手動でインストールする必要がある。
libRsyncのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf librsync-<バージョン>.tar.gz
cd librsync-<バージョン>.tar.gz


libRsyncをビルドおよびインストールする。

mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=<libRsyncのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)
make install


KittyのGithubにアクセスして、Kittyのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf kitty-<バージョン>-x86_64.txz
cd kitty-<バージョン>-x86_64


Kittyをビルドおよびインストールする。

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)


makeコマンドを実行してビルドした場合、Kittyの実行ファイルは以下に示すパスに存在する。

/<Kittyのソースコードディレクトリ>/kitty/launcher/kitty


共通

Kittyのデスクトップエントリファイルを作成する。

vi ~/.local/share/applications/Kitty.desktop


 # ~/.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;


Kittyを使用したURLランチャーのデスクトップエントリファイルを作成する。

vi ~/.local/share/applications/Kitty-Open.desktop


 # ~/.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;


Fishを使用している場合、Kittyの設定ファイルをFishの設定ディレクトリへコピーする。

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/


設定

スクロールバー

Kittyのデフォルト設定では、スクロールバーは必要な場合のみ表示される。

常にスクロールバーを表示する場合は、Kittyの設定ファイル (~/.config/kitty/kitty.conf) に以下に示す設定追加する。

scrollbar always

# スクロールバーの外観もカスタマイズ可能
scrollbar_fill_bg       #505050
scrollbar_thumb_bg      #808080
scrollbar_padding       3
scrollbar_margin        3


設定を有効にする場合は、Kittyを再起動する必要がある。

  • キーボードでのスクロール
    [Ctrl] + [Shift] + [Up] または [Ctrl] + [Shift] + [Down]
    [Ctrl] + [Shift] + [Page Up] または [Ctrl] + [Shift] + [Page Down]

  • マウスでのスクロール
    マウスホイール
    トラックパッドの2本指スクロール


エラー

日本語入力ができない場合

IBus IMEフレームワークのKittyサポートは、デフォルトでは無効になっている。
これを有効にするには、環境変数GLFW_IM_MODULEibusに設定する。

 export GLFW_IM_MODULE=ibus


互換性のあるIBusインターフェースが提供されているため、Fcitx5でも動作する。

変数term

変数termは、様々なソフトウェアがターミナルの機能や動作に関する情報を取得するために使用される。
実行するソフトウェアやターミナルの違いにより、キーの操作、色、その他機能まで、不具合を起こす可能性がある。

Kittyの初期設定では、変数termの値はxterm-kittyとなっている。
もし、なんらかのソフトウェアのコマンドを実行する場合、以下に示すようなエラーメッセージが表示されることがある。

'xterm-kitty': unknown terminal type.


この時、Kittyの設定ファイルに変数termの値を、xtermまたはxterm-256colorに設定する。

vi ~/.config/kitty/kitty.conf


# ~/.config/kitty/kitty.confファイル

term xterm-256color
# または
term xterm


SSH接続

kittyを使用して、terminfoを持たないリモートにSSH接続する場合、矢印キー、Backspace、Delete、Home / End等のキーが効かない場合がある。

これを修正するには、以下に示す手順に従う。

  1. まず、リモート先のPCに接続する。
  2. 次に、リモート先のPCにおいて、~/.terminfo/xディレクトリ(Linuxの場合)、または、~/.terminfo/78ディレクトリ(Macの場合)を作成する。
    mkdir -p ~/.terminfo/{78,x}
  3. 最後に、Kittyのインストールディレクトリにあるshare/terminfo/x/xterm-kittyファイルを、上記で作成したディレクトリへコピーする。
    scp /<Kittyのインストールディレクトリ>/share/terminfo/x/xterm-kitty <リモート先PCのユーザ名>@<リモート先PCのホスト名またはIPアドレス>:~/.terminfo/x


または、上記の設定を自動化するためのkitty +kittenオプションを付加して、SSH接続を行う。
ただし、kitty +kittenオプションとSSHPassソフトウェアは同時に使用できないことに注意する。

kitty +kitten ssh <ユーザ名>@<ホスト名またはIPアドレス> -p <ポート番号>



Alacritty

Alacrittyのインストール

ビルドに必要な依存関係のライブラリをインストールする。

# RHEL
sudo dnf install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel xcb-util-devel
sudo dnf group install "Development Tools"

# SUSE
sudo zypper install cmake cargo freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel


AlacrittyのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf alacritty-<バージョン>.tar.gz
cd alacritty-<バージョン>


または、以下のコマンドを実行して、Alacrittyのソースコードをダウンロードする。

git clone https://github.com/alacritty/alacritty.git Alacritty
cd Alacritty


Alacrittyをビルドする。

# X11環境の場合
cargo build --release --features=x11

# Wayland環境の場合
cargo build --release --features=wayland


ビルドが正常に終了した場合、プロジェクトディレクトリにtarget/release/alacrittyファイルが生成される。

生成されたAlacrittyファイルを任意のディレクトリに配置する。

mv target/release/alacritty <任意のディレクトリ>


※注意
Alacritty 0.13以降、設定ファイルのパスが~/.config/alacritty/alacritty.ymlファイルから~/.config/alacritty/alacritty.tomlへ変更された。
もし、Alacritty 0.12以前からアップデートしている場合は、alacritty migrateコマンドを実行して設定ファイルをアップデートする。

# 設定ファイルのアップデート
alacritty migrate


タブ機能の有効化

Alacrittyはタブ機能が存在しない。
そのため、タブ機能を有効化するには、tmuxを使用する必要がある。

tmuxのビルドに必要な依存関係のライブラリをインストールする。

sudo zypper install make pkg-config bison ncurses-devel libevent-devel


まず、tmuxのGithubにアクセスして、ソースコードをダウンロードする。

https://github.com/tmux/tmux/releases/


ダウンロードしたファイルを解凍する。

tar xf tmux-<バージョン>.tar gz
cd tmux-<バージョン>


ビルド用ディレクトリを作成する。

mkdir build && cd build


tmuxをビルドおよびインストールする。

../configure --prefix=<tmuxのインストールディレクトリ>
make -j $(nproc)
make install


  • タブ
    • [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]キーを押下することにより、タブの分割を解除することができる。


tmuxの設定ファイル(~/.tmux.confファイル)を作成する。

vi ~/.tmux.conf


# ~/.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'


tmuxでタブ機能を有効化して、Alacrittyを起動する。

/<Alacrittyのインストールディレクトリ>/alacritty -e /<tmuxのインストールディレクトリ>/bin/tmux