A powerline segment to show an ENV list with extra knobs
Project description
powerline-inject
powerline-inject
is a Powerline status segment addon for showing ENV with 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"
}
}
]
}
}
Couple knobs featured that powerline-inject
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 show only a symbol when the variables holds value. (SECRET KEYS, TOKENS, etc.)
- Multiple different highlighter profiles for your ENV lists.
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": "red", "attrs": [] },
"powerline_inject_bold": { "fg": "white", "bg": "brightred", "attrs": [] },
}
}
-
You will 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
}
Confidential ENV use
You may find you want to know when you have SECRETS loaded into your ENVIRONMENT. This will show only a symbol ⩜
when the SECRET_TOKEN
or AWS_PROFILE
is loaded.
{
"function": "powerline_inject.context",
"priority": 30,
"args": {
"show_env": false,
"env_list": ["SECRET_TOKEN", "AWS_PROFILE"],
"before": "⩜ "
}
},
You can further add a second call to powerline_inject.context
with a different before
symbol and/or env_highlighter
in args like the powerline_inject_bold
defined above.
{
"function": "powerline_inject.context",
"priority": 30,
"name": "second_injection",
"args": {
"show_env": false,
"env_list": ["SECRET_TOKEN", "AWS_PROFILE"],
"env_highlighter": "powerline_inject_bold"
}
},
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.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93dc5b0b1ed69be5ace2c931a6911020c448aa86ae5bdccfa19b228c697f8db7 |
|
MD5 | a67cffcb391a4c2b754a833490b7a0e9 |
|
BLAKE2b-256 | 986dbfb4ac9a9e7d724cb9a28ae0a63572ff4e45c935244baa5b8cd681bc5488 |