Lightweight workspace manager for the shell. Desk makes it easy to flip back and forth between different project contexts in your favorite shell. Change directory, activate a virtualenv or rvm, load in domain-specific aliases, environment variables, functions, arbitrary shell files, all in a single command. Instead of relying on CTRL-R to execute and recall ("that command's gotta be here somewhere..."), desk helps shorten and document those actions with shell aliases and functions, which are then namespaced under a particular desk. Because Deskfiles are just enriched shell scripts, the possibilities are endless. For example, when doing work on AWS I have desk securely load AWS API keys into environment variables via pass -- no effort on my part, and no risk of accidentally persisting that sensitive information to a history file.
Features
- A shell script that sources another shell script in a new shell
- The quick context switches and namespaced commands that desk facilitates have proven useful
- There are no dependencies other than bash
- Desk is explicitly tested with bash, zsh, and fish
- Basically, desk just associates a shell script (name.sh) with a name
- Shell extensions are automatically enabled if Desk is installed via Homebrew