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)
- Host: GitHub
- URL: https://github.com/ttys3/my-kitty-config
- Owner: ttys3
- Created: 2022-03-03T16:37:20.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-26T12:55:11.000Z (about 1 year ago)
- Last Synced: 2024-10-13T01:45:11.062Z (about 1 year ago)
- Topics: kitty, kitty-config, terminal, tmux
- Language: Python
- Homepage:
- Size: 88.9 KB
- Stars: 189
- Watchers: 5
- Forks: 39
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.bakgit 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
focusnew_tab work
cd ~/work
launch zshnew_tab nvim
cd ~/.config/nvim
launch zshnew_tab go
cd ~/repo/go
launch zshnew_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
```