# wezterm-config
**Repository Path**: elliotxx/wezterm-config
## Basic Information
- **Project Name**: wezterm-config
- **Description**: My wezterm config
- **Primary Language**: Lua
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-05-13
- **Last Updated**: 2024-05-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
My WezTerm Config

---
### Features
- [**Background Image Selector**](https://github.com/KevinSilvester/wezterm-config/blob/master/utils/backdrops.lua)
Uses `wezterm.read_dir` to scan the `backdrops` directory for images.
> See: [key bindings](#background-images) for usage
- [**GPU Adapter Selector**](https://github.com/KevinSilvester/wezterm-config/blob/master/utils/gpu_adapter.lua)
> :bulb: Only works if the [`front_end`](https://github.com/KevinSilvester/wezterm-config/blob/master/config/appearance.lua#L8) 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 😁)
> :bulb:
> 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)
> currenly has support implemented for.
> See: for more info
- Windows: `Dx12` > `Vulkan` > `OpenGl`
- Linux: `Vulkan` > `OpenGl`
- Mac: `Metal`
---
### Installation
On MacOS:
```bash
brew tap homebrew/cask-fonts
brew install --cask font-fira-code
git clone https://github.com/elliotxx/wezterm-config.git ~/.config/wezterm
```
On Windows:
```bash
scoop bucket add nerd-fonts
scoop install firacode
git clone https://github.com/elliotxx/wezterm-config.git ~/.config/wezterm
```
References:
- https://github.com/tonsky/FiraCode/wiki/Installing
### All Key Binbdings
Most of the key bindings revolve around a SUPER and a SUPER_REV(super reversed) keys.
- On MacOs:
- SUPER ⇨ Super
- SUPER_REV ⇨ Super+Ctrl
- On Windows and Linux
- SUPER ⇨ Alt
- SUPER_REV ⇨ Alt+Ctrl
> To avoid confusion when switching between different OS and to avoid conflicting
> with OS's built-in keyboard shortcuts.
- On all platforms: LEADER ⇨ SUPER_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+u | Open URL |
| SUPER+q | Quit Wezterm |
| Option+← | Backward Word |
| Option+→ | Forward Word |
#### Copy+Paste
| Keys | Action |
| ----------------------------- | -------------------- |
| SUPER+c | Copy to Clipborad |
| Ctrl+v | Paste from Clipborad |
#### 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 |
| SUPER+1 | Move Tab 1 |
| SUPER+2 | Move Tab 2 |
| SUPER+3 | Move Tab 3 |
| SUPER+4 | Move Tab 4 |
| SUPER+5 | Move Tab 5 |
| SUPER+6 | Move Tab 6 |
| SUPER+7 | Move Tab 7 |
| SUPER+8 | Move Tab 8 |
| SUPER+9 | Move Tab 9 |
#### Windows
| Keys | Action |
| ----------------------------- | ------------- |
| SUPER+n | `SpawnWindow` |
#### Panes
##### Panes: Split Panes
| Keys | Action |
| ---------------------------------- | ------------------------------------------------ |
| SUPER+\\ | `SplitHorizontal` (CurrentPaneDomain) |
| SUPER_REV+\\ | `SplitVertical` (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 |
#### Font Size
| Keys | Action |
| ----------------------------- | ------------------ |
| SUPER+= | `IncreaseFontSize` |
| SUPER+- | `DecreaseFontSize` |
#### Background Images
| Keys | Action |
| --------------------------------- | ----------------------- |
| SUPER+/ | Select Random Image |
| SUPER+, | Cycle to next Image |
| SUPER+. | Cycle to previous Image |
| SUPER_REV+/ | Fuzzy select Image |
#### Key Tables
> See:
| 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
-
-
-
-