Easily open and manage your local coding projects with Kitty terminal
GPL-3.0 License
Easily open and manage your local coding projects inside kitty terminal.
maxdepth
is hard coded to2
):level_1_dir="$HOME/Documents/"
level_2_dirs=("$level_1_dir"/business "$level_1_dir"/personal "$level_1_dir"/apps-sites)
├── Documents
│ ├── apps-sites
│ │ └── rust < maxdepth 2 searches for projects below
│ │ ├── project-1
│ │ └── project-2
│ ├── business
│ │ └── documents <
│ │ └── project-3
│ └── personal
│ └── blog <
If you created projects as above the search results would be:
- project-1
- project-2
- project-3
├── Documents
│ ├── apps-sites
│ │ └── rust
│ │ └── project-1
│ │ ├── src
│ │ │ ├── modules
│ │ │ │ ├── model.js
│ │ │ │ └── view.js
│ │ │ └── main.js
│ │ ├── package.json < detects JS/TS in project root
│ │ ├── README.md
│ │ └── .gitignore
For example, to open an additional terminal window for Rust and JS/TS projects the included default is:
if [ -f "Cargo.toml" ] || [ -f "package.json" ]; then
kitty @ launch --title "Terminal:$project_name" --keep-focus --cwd="$selected_dir"
fi
Make sure to close them again at the end of the script:
kitty @ close-window --match title:^"Terminal:$project_name" --ignore-no-match
kitty.conf
enabled_layouts stack,tall
Now you can easily toggle each window between full screen and split screen with
ctrl+shift l
If you find it easier to use just ctrl
than ctrl+shift
then the following
remapping is recommended:
map ctrl+t launch --cwd=current --type=tab
map ctrl+enter launch --cwd=current
map ctrl+1 first_window
map ctrl+2 second_window
map ctrl+3 third_window
map ctrl+4 fourth_window
map ctrl+5 fifth_window
map ctrl+6 sixth_window
map ctrl+] next_window
map ctrl+[ previous_window
ep
script into your $PATH
.ep
in your terminal.README.md
file is placed inside new folders by default.Requirements:
Optional requirements:
Example Helix config for Rust:
[keys.normal.space]
c = { r = ":sh kitty @ send-text --match 'title:^Terminal' cargo run \\\\n", t = ":sh kitty @ send-text --match 'title:^Terminal' 'clear \\ncargo test \\n'" }