Manager for Yakuake, a drop-down, tabbed & tiled terminal emulator.
You know how working on a project you often need, besides an open IDE and browser, a number of separate terminals (npm, git, docker environment, ... ). You also need to run some scripts before you start and after you finish (e.g. docker containers). It's a hassle, right? Everything just becomes a nightmare when working on multiple projects.
Well, no more. Now you can setup your project environment with a single command.
The only thing I have not figured out how is to automate Tab Session Manager - i.e. the browser tabs.
Everything else - docker, vscode, yakuake can be handled by this tool.
PS: This is obviously a solution for a very specific set of tools. It's not meant to be a general purpose tool.
- Define tabs and terminals to open as part of a profile
- Open, close and switch profiles
- Tabs can define custom tiling per tab
- Each created terminal can run any predefined set of commands
- Run predefined commands when opening and when closing a profile (i.e. start/stop dockers)
You define a profile config file where you define the tabs, how they are split and what commands should be run (cd-ing into folders, tailing logs, starting file watchers, sshing into a server etc.) that looks like this:
version: 1
variables:
path: /your/path
pre:
- cd %path%
- docker-compose start
tabs:
yourTabName:
- "cd %path%"
- "git status"
htop:
- "htop"
splitTab:
left:
top:
- "ls -la"
bottom:
- "ll"
right:
- "ps faux"
server:
- ssh server
down:
- cd %path%
- docker-compose stop
This creates a config file and opens it in your default editor.
yaman create <profileName>
yaman list
yaman open <profileName>
yaman close <profileName>
This will close the open profile(s) and open the specified one.
yaman switch <profileName>
yaman edit <profileName>
You'll need qdbus
found in the following packages:
- Arch: qt5-tools
- Debian/Ubuntu: qttools5-dev-tools (not tested!)
git clone <path>
poetry install
poetry run yaman