A powerline segment to show an ENV list with extra knobs
Project description
powerline-inject
powerline-inject is a Powerline segment that shows injections
- the list of envs but with some extra knobs.
This can be natively done with powerline.segments.common.env.environment
if knobs aren't needed:
{
"segments":
{
"left":
[
{ "function":
"powerline.segments.common.env.environment",
"name": "aws",
"priority": 20,
"before": "⩜ ",
"args": {
"variable": "SOME_ENV"
}
}
]
}
}
Two other nifty features that it has are:
- The ability to toggle on or off the powerline-inject segment using an environment variable which can easily be mapped to a function in your
~/.bash_profile
. - The ability to run additional commands prior to loading
The screenshot below demonstrates this functionality:
Installation
- Add the Python package. powerline-inject is available on pypi so you can install it with pip:
pip install --user powerline-inject
- Create a user configuration directory.
Once powerline-inject has been installed, we'll need to add it to our powerline shell's theme and colorscheme.
Alter your powerline user config:
If you don't already have a ~/.config/powerline/
folder, create it. Next we'll be copying some of the default powerline configs into this location. Find where powerline is installed by using pip show powerline-status | grep 'Location'
, then navigate to the config_files/
folder there. We'll be copying config.json
, themes/shell/default.json
, and colorschemes/shell/default.json
to our ~/.config/powerline/
folder, adding the necessary folders to match that original file structure (i.e. adding the themes/
and colorschemes/
folders, etc.
- Add powerline-inject to your user config.
Within our user config, we'll need to add the powerline-inject segment to our shell by adding the following lines to our ~/.config/powerline/themes/shell/default.json
:
{
"function": "powerline_inject.context",
"priority": 30,
"args": {"show_env": true,
"env_list": ["AWS_PROFILE", "TOKEN_X"]}
}
Next we'll add the highlighting colors we'll use to our ~/.config/powerline/colorschemes/shell/default.json
:
{
"name": "Default",
"groups": {
"powerline_inject": { "fg": "white", "bg": "brightred", "attrs": [] },
}
}
-
You may need to reload powerline with
powerline-daemon --replace
to load the new settings. That's it! -
(Optional) By default powerline-inject will render the environment variable if
RENDER_POWERLINE_INJECTS
is either set toYES
or is not set at all. Rather than setting this variable manually, you can create a simplepowerline-inject-toggle
function by placing the following in your~/.bash_profile
:
function powerline-injects-toggle() {
if [[ $RENDER_POWERLINE_INJECTS = "NO" ]]; then
export RENDER_POWERLINE_INJECTS="YES"
else
export RENDER_POWERLINE_INJECTS="NO"
fi
}
Used with PROMPT_COMMAND
for ENV refresh
You may want to use this with a PROMPT COMMAND that updates the ENVs being checked everytime. As an example aws-test-authentication
sets AWS_EPOCH
and AWS_PROFILE
.
Put this in your ~/.bash_profile
export PROMPT_COMMAND="eval \$(aws-test-authentication); $PROMPT_COMMAND"
You're all set up! Happy coding!
License
Licensed under the Apache License 2.0.
Original fork is at https://github.com/zcmarine/powerkube.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for powerline_inject-0.1.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af10b68f00adc72de4108d3600784a0b67b8e8e33cf148940d2f17b360f1c375 |
|
MD5 | 2fa25dd3cab17cb52c47e77208f6047b |
|
BLAKE2b-256 | 82e224ec21a24e0ddd8a96ca9b8b4b307589641073fe43ed5511863571760c71 |