Giter Club home page Giter Club logo

yaman's Introduction

yaman - Yakuake terminal manager

Manager for Yakuake, a drop-down, tabbed & tiled terminal emulator.

What?

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.

What isn't covered?

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.

Features

  • 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)

How does it work?

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

How do I use it?

Create a new profile

This creates a config file and opens it in your default editor.

yaman create <profileName>

List all profiles

yaman list

Open a profile

yaman open <profileName>

Stop a profile

yaman close <profileName>

Switch profile

This will close the open profile(s) and open the specified one.

yaman switch <profileName>

Edit profile

yaman edit <profileName>

How to install

Required

You'll need qdbus found in the following packages:

  • Arch: qt5-tools
  • Debian/Ubuntu: qttools5-dev-tools (not tested!)

Development

git clone <path>
poetry install
poetry run yaman

yaman's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

yaman's Issues

Import config command

Takes a filepath as a parameter and symlinks it into the config folder (for shared configs).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.