GSM is a session manager written in C++ to quickly change between projects using a command line interface. I plan to integrate a GUI using GTK to manage and edit sessions in the future. Currently, I use an AGS widget to quickly change between sessions which can be found in my dotfiles. All sessions are stored under ~/.config/gsm
. Currently I have a lot of features hardcoded in for my own convenience which will change in the future.
Clone the respository and run compile.sh
.
git clone https://github.com/danielsodium/gsm.git
cd gsm && ./compile.sh
All outputs are given in a json format to std::out
.
To enter a session run
./gsm <session>
This will create a session with name <session>
if one doesn't exist, otherwise it will load the session.
To set the path to the project directory, run
./gsm <session> set pwd <path>
To open a terminal window run
./gsm <session> term
To open a neovide window run
./gsm <session> edit
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.