Skip to content

Instantly share code, notes, and snippets.

@sheepla
Last active August 14, 2024 08:43
Show Gist options
  • Select an option

  • Save sheepla/440dd9f82f08d31e6f109da3a2e65d4c to your computer and use it in GitHub Desktop.

Select an option

Save sheepla/440dd9f82f08d31e6f109da3a2e65d4c to your computer and use it in GitHub Desktop.
新鋭気質なターミナルエミュレータ「WezTerm」を使う

新鋭気質なターミナルエミュレータ「WezTerm」を使う

WezTermは、Rustで書かれたクロスプラットフォームのターミナルエミュレータ。GPUアクセラレーションによる軽量さ、Luaによる高いカスタマイズ性、ターミナルマルチプレクサとしても使える機能性などが特徴。

wez/wezterm - GitHub

公式ドキュメント

alacritty+tmuxもいいけど、weztermがすごい件 - Zenn

設定はLuaスクリプト ~/.config/wezterm/wezterm.luaを記載することで行う。

local wezterm = require 'wezterm';
return {
  -- ここに設定を記述...
}

フォント

wezterm.font_with_fallback(obj)を使うと、複数のフォントを指定してフォールバックさせることができる。Linuxの場合、フォントの名前とウェイトは fc-listコマンドで確認できる。

local wezterm = require 'wezterm';
return {
  -- ...
  -- font
  font = wezterm.font_with_fallback({
    {family="PlemolJP Console NF", weight="Medium"},
    {family="UDEV Gothic NFLG", weight="Regular"},
  }),
  font_size = 12.0,
  -- ...
}

カラースキーム

デフォルトで多くのカラースキームが用意されている。大好きなIcebergテーマがデフォルトで搭載されていたのでほとんど設定せずに済んだ。

組み込みのカラースキームの一覧は下記から参照できる。

Color Schemes - Wez's Terminal Emulator

local wezterm = require 'wezterm';
return {
  -- ...
  -- color scheme
  color_scheme = "iceberg-dark"
  
  -- opacity
  window_background_opacity = 0.8,
  -- ...
}

タブバー

use_fancy_tab_barfalseに設定し、タブバーの色を設定することで、tmuxのようにCLIと調和した見た目に変更できる。

local wezterm = require 'wezterm';
return {
  -- ...
  -- tab bar
  use_fancy_tab_bar = false,
  colors = {
    cursor_bg= "#c6c8d1",
    tab_bar = {
      background = "#1b1f2f",

      active_tab = {
        bg_color = "#444b71",
        fg_color = "#c6c8d1",
        intensity = "Normal",
        underline = "None",
        italic = false,
        strikethrough = false,
      },

      inactive_tab = {
        bg_color = "#282d3e",
        fg_color = "#c6c8d1",
        intensity = "Normal",
        underline = "None",
        italic = false,
        strikethrough = false,
      },

      inactive_tab_hover = {
        bg_color = "#1b1f2f",
        fg_color = "#c6c8d1",
        intensity = "Normal",
        underline = "None",
        italic = true,
        strikethrough = false,
      },

      new_tab = {
        bg_color = "#1b1f2f",
        fg_color = "#c6c8d1",
        italic = false
      },

      new_tab_hover = {
        bg_color = "#444b71",
        fg_color = "#c6c8d1",
        italic = false
      },
    }
  },
  -- ...
}

起動時のシェル

ユーザーのログインシェルは変更せずにWezTermの起動時に起動するシェル、または任意のプログラムを指定できる。

local wezterm = require 'wezterm';
return {
  -- ...
  -- shell
  default_prog = {"zsh", "--login"}
  -- ...
}

キーバインドのカスタマイズ

キーバインドも自由にカスタマイズできる。詳しくは公式ドキュメントを参照。

Keyboard Concepts - Wez's Terminal Emulator

Configuring Key Assignments - Wez's Terminal Emulator

local wezterm = require 'wezterm';
return {
  -- key
  keys = {
    {key = "{", mods = "CTRL|SHIFT", action=wezterm.action{ActivateTabRelative=-1}},
    {key = "}", mods = "CTRL|SHIFT", action=wezterm.action{ActivateTabRelative=1}},
    {key = "p", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByLine=-1}},
    {key = "n", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByLine=1}},
    {key = "b", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByPage=-1}},
    {key = "f", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByPage=1}},
  },
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment