/wezterm-config

My WezTerm Config

Primary LanguageLuaMIT LicenseMIT

My WezTerm Config

Stargazers Issues Build

screenshot


Features

  • Background Image Selector

    • Cycle images
    • Fuzzy search for image
    • Toggle background image

    See: key bindings for usage

  • GPU Adapter Selector

    💡 Only works if the front_end option is set to WebGpu.

    A small utility to select the best GPU + Adapter (graphics API) combo for your machine.

    GPU + Adapter combo is selected based on the following criteria:

    1. Best GPU available

      Discrete > Integrated > Other (for wgpu's OpenGl implementation on Discrete GPU) > Cpu

    2. Best graphics API available (based off my very scientific scroll a big log file in Neovim test 😁)

      💡
      The available graphics API choices change based on your OS.
      These options correspond to the APIs the wgpu crate (which powers WezTerm's gui in WebGpu mode)
      currently has support implemented for.
      See: https://github.com/gfx-rs/wgpu#supported-platforms for more info

      • Windows: Dx12 > Vulkan > OpenGl
      • Linux: Vulkan > OpenGl
      • Mac: Metal

Getting Started

  • Requirements:
    • WezTerm

      Minimum Version: 20240127-113634-bbcac864
      Recommended Version: Nightly

      Official Installation Page

      Windows

      • Install Stable
        • Install with Scoop (non-portable)

          scoop bucket add extras
          scoop install wezterm
        • Install with Scoop (portable)

          scoop bucket add k https://github.com/KevinSilvester/scoop-bucket
          scoop install k/wezterm
        • Install with winget

          winget install wez.wezterm
        • Install with choco

          choco install wezterm -y
      • Install Nightly
        • Install with Scoop (non-portable)

          scoop bucket add versions
          scoop install wezterm-nightly
        • Install with Scoop (portable)

          scoop bucket add k https://github.com/KevinSilvester/scoop-bucket
          scoop install k/wezterm-nightly

      💡
      Toast notifications don't work in non-portable installations.
      See issue wez/wezterm#5166 for more details


      MacOS

      • Install Stable
        • Install with Homebrew

          brew install --cask wezterm
        • Install with MacPort

          sudo port selfupdate
          sudo port install wezterm
      • Install Nighlty
        • Install with Homebrew

          brew install --cask wezterm@nightly
        • Upgrade with Homebrew

          brew install --cask wezterm@nightly --no-quarantine --greedy-latest

      Linux

      Refer to the Linux installation page.
      https://wezfurlong.org/wezterm/install/linux.html

    • JetBrainsMono Nerd Font

      Install with Homebrew (Macos)

      brew tap homebrew/cask-fonts
      brew install font-jetbrains-mono-nerd-font

      Install with Scoop (Windows)

      scoop bucket add nerd-fonts
      scoop install JetBrainsMono-NF

      More Info:

 

  • Steps:
    1. # On Windows and Unix systems
      git clone https://github.com/KevinSilvester/wezterm-config.git ~/.config/wezterm
    2. And Done!!! 🎉🎉

 


All Key Bindings

Most of the key bindings revolve around a SUPER and SUPER_REV(super reversed) keys.

  • On MacOs:
    • SUPERSuper
    • SUPER_REVSuper+Ctrl
  • On Windows and Linux
    • SUPERAlt
    • SUPER_REVAlt+Ctrl

To avoid confusion when switching between different OS and to avoid conflicting
with OS's built-in keyboard shortcuts.

  • On all platforms: LEADERSUPER_REV+Space

Miscellaneous/Useful

Keys Action
F1 ActivateCopyMode
F2 ActivateCommandPalette
F3 ShowLauncher
F4 ShowLauncher (tabs only)
F5 ShowLauncher (workspaces only)
F11 ToggleFullScreen
F12 ShowDebugOverlay
SUPER+f Search Text
SUPER_REV+u Open URL

 

Copy+Paste

Keys Action
Ctrl+Shift+c Copy to Clipboard
Ctrl+Shift+v Paste from Clipboard

 

Cursor Movements

Keys Action
SUPER+LeftArrow Move cursor to Line Start
SUPER+RightArrow Move cursor to Line End
SUPER+Backspace Clear Line (does not work for PowerShell or cmd)

 

Tabs

Tabs: Spawn+Close
Keys Action
SUPER+t SpawnTab (DefaultDomain)
SUPER_REV+f SpawnTab (WSL:Ubuntu)
SUPER_REV+w CloseCurrentTab
Tabs: Navigation
Keys Action
SUPER+[ Next Tab
SUPER+] Previous Tab
SUPER_REV+[ Move Tab Left
SUPER_REV+] Move Tab Right
Tabs: Title
Keys Action
SUPER+9 Toggle tab bar
Tabs: Toggle Tab-bar
Keys Action
SUPER+0 Rename Current Tab
SUPER_REV+0 Undo Rename

 

Windows

Keys Action
SUPER+n SpawnWindow
SUPER+= Increase Window Size
SUPER+- Decrease Window Size

 

Panes

Panes: Split Panes
Keys Action
SUPER+\ SplitVertical (CurrentPaneDomain)
SUPER_REV+\ SplitHorizontal (CurrentPaneDomain)
Panes: Zoom+Close Pane
Keys Action
SUPER+Enter TogglePaneZoomState
SUPER+w CloseCurrentPane
Panes: Navigation
Keys Action
SUPER_REV+k Move to Pane (Up)
SUPER_REV+j Move to Pane (Down)
SUPER_REV+h Move to Pane (Left)
SUPER_REV+l Move to Pane (Right)
SUPER_REV+p Swap with selected Pane
Panes: Scroll Pane
Keys Action
SUPER+u Scroll Lines up 5 lines
SUPER+d Scroll Lines down 5 lines
PageUp Scroll Page up
PageDown Scroll Page down

 

Background Images

Keys Action
SUPER+/ Select Random Image
SUPER+, Cycle to next Image
SUPER+. Cycle to previous Image
SUPER_REV+/ Fuzzy select Image
SUPER+b Toggle background focus mode

 

Key Tables

See: https://wezfurlong.org/wezterm/config/key-tables.html

Keys Action
LEADER+f resize_font
LEADER+p resize_pane
Key Table: resize_font
Keys Action
k IncreaseFontSize
j DecreaseFontSize
r ResetFontSize
q PopKeyTable (exit)
Esc PopKeyTable (exit)
Key Table: resize_pane
Keys Action
k AdjustPaneSize (Direction: Up)
j AdjustPaneSize (Direction: Down)
h AdjustPaneSize (Direction: Left)
l AdjustPaneSize (Direction: Right)
q PopKeyTable (exit)
Esc PopKeyTable (exit)

References/Inspirations