An open API service indexing awesome lists of open source software.

https://github.com/ttys3/my-kitty-config

my kitty terminal config (the kitty config for tmux users)
https://github.com/ttys3/my-kitty-config

kitty kitty-config terminal tmux

Last synced: 6 months ago
JSON representation

my kitty terminal config (the kitty config for tmux users)

Awesome Lists containing this project

README

          

# my-kitty-config

the kitty config for tmux users

the shortcuts (key bindings) is heavily inspired by [Oh my tmux!](https://github.com/gpakosz/.tmux#bindings)

mainly used under Linux

## usage

```shell
# backup your config first
# mv ~/.config/kitty ~/.config/kitty.bak

git clone https://github.com/ttys3/my-kitty-config.git ~/.config/kitty
```

## suggested shell alias

```shell
alias icat="kitten icat"
alias s="kitten ssh"
alias d="kitten diff"
```

## Shortcuts

key name see

or using `kitty --debug-input` to detect keysyms

### config

keybindings explain:

ctrl+a>R means:
press `ctrl` + `a` in the same time, release and then, press R (`shift`+`r`)

| key | description |
| ----------------------------------------- | ------------- |
| ctrl+a>R | reload config |
| ctrl+a>E | edit config |
| ctrl+a>D | debug config |

### session

| key | description |
| ----------------------------------------- | ----------------------------------- |
| ctrl+a>s | save current layout to session file |

### tab

| key | description |
| --------------------------------------------- | ------------------ |
| ctrl+shift+ | goto previous tab |
| ctrl+shift+ | goto next tab |
| ctrl+shift+, | move tab backward |
| ctrl+shift+. | move tab forward |
| ctrl+a>, | change tab title |
| ctrl+a>c | create new tab |
| ctrl+a>x | close window / tab |

### os window

| key | description |
| ---------------------------- | ----------------- |
| ctrl+q | quit kitty |
| f11 | toggle fullscreen |

### window

| key | description |
| ----------------------------------------------------------- | ---------------------------- |
| ctrl+a>- | horizontal split with cwd |
| ctrl+a>shift+- | horizontal split |
| ctrl+a>\\ | vertial split with cwd |
| ctrl+a>shift+\\ | vertial split |
| ctrl+a>x | close window |
| ctrl+a>z | zoom (maxmize) window |
| ctrl+shift+r | resize window |
| ctrl+ | goto left window |
| ctrl+ | goto right window |
| ctrl+ | goto up window |
| ctrl+ | goto down window |
| ctrl+a>h | goto left window |
| ctrl+a>l | goto right window |
| ctrl+a>k | goto up window |
| ctrl+a>j | goto down window |
| shift+ | move current window to left |
| shift+ | move current window to right |
| shift+ | move current window to up |
| shift+ | move current window to down |
| alt+n | resize window narrower |
| alt+w | resize window wider |
| alt+u | resize window taller |
| alt+d | resize window shorter |
| ctrl+home | resize window reset |

### font

| key | description |
| ---------------------------- | --------------- |
| ctrl+= | font size + |
| ctrl+- | font size - |
| ctrl+0 | font size reset |

### misc

| key | description |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| ctrl+a>t | kitten themes |
| ctrl+a>space | copy pasting with hints like [tmux-thumbs](https://github.com/fcsonline/tmux-thumbs) |
| ctrl+a>ctrl+a | send real ctrl+a (emacs shortcut Home) |

## session restore

> if you have used ctrl+a>s generate the session, you do not need this.

you can create your session file under `~/.config/kitty`, let's say the filename is `session.conf`

change `startup_session none` to `startup_session session.conf`

create `session.conf` like this:

```ini
new_tab home
layout splits
cd ~
launch zsh
focus

new_tab work
cd ~/work
launch zsh

new_tab nvim
cd ~/.config/nvim
launch zsh

new_tab go
cd ~/repo/go
launch zsh

new_tab rust
cd ~/repo/rust
launch zsh
```

## kitty docs

Keyboard shortcuts

The launch command syntax reference

## troubleshooting

the behavior of `listen_on` differs from the behavior of `--listen-on` cli flag.

the cli one is exactly the same.

the config file one will append a random postfix to the socket name, this is strange logic.

start kitty:
```
kitty -o allow_remote_control=yes --listen-on unix:/run/user/1000/kitty.sock
```

on other terminal:

```
kitty @ --to unix:/run/user/1000/kitty.sock launch --type=tab --cwd "/tmp" --tab-title "My Tab" --keep-focus bash
```