Create terminator profiles for individualized bash histories and working directories.
qw is a utility to create and manage terminator profiles to enable multi-terminal workspaces where each shell within a workspace maintains its own dedicated bash history and current working directory. This allows users to effortlessly switch between various work contexts or projects without losing their current work state.
- Profile-based Workspaces: Execute
qw <profile_name>to spawn or switch to a terminal workspace defined by that profile. The profile definition is stored in a separate file within the workspace, and the utility does not modifyterminator'sdefault configuration file. - Persistent Shell States: Each shell in a
terminatorwindow maintains its own bash history and current directory, persisting across sessions. Bash is configured to update both the history and working directory after each command is invoked. - Layout Control: Define the window layout of
terminatorby specifying the dimensions for the profile usingqw <profile_name> [3x2], where the first number represents the number of rows and the second represents the number of columns. - Bash Completion: Integrated bash completion provides auto-suggestions for
qwcommands based on available profiles, streamlining the command invocation process. - Profile Management: Commands are available to list, remove, or rename profiles with ease.
Ensure
- Terminator: Terminator
- wmctrl: wmctrl
are installed on your system.
qw <profile_name> [<rows>x<cols>]If the profile is already active, qw will switch to the corresponding terminator window. For new profiles, a fresh environment is set up in a dedicated directory. If <rows>x<cols> is provided for new profiles, the terminator window will be divided into the specified number of rows and columns. Otherwise, it will use a default layout of 2x2. Each section in the grid stores the bash history, current directory info, and a temporary workspace for each shell.
qw --listOutputs a list of all available profiles.
qw --remove <profile_name>Deletes the designated profile along with its bash histories and working directory data for each shell.
qw --rename <old_profile_name> <new_profile_name>Renames the provided profile and updates its associated files and directories to match.
- Clone the Repository:
git clone https://github.com/zgrmrts/qw.git- Navigate to the Project Directory:
cd qw- Add the Scripts to Your PATH
Add qw to your PATH. Put the following in .bashrc and/or .profile:
source "${PATH_TO_QW}/init_qw.sh"Feedback, issues, and pull requests are always appreciated. Feel free to contribute to the enhancement of qw.
This project falls under the MIT License.