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
File details
Details for the file powerline-inject-0.1.6.tar.gz
.
File metadata
- Download URL: powerline-inject-0.1.6.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8733928f0db4dccf291c6a60a33abaf6f91354c755b49002398e7ddf21855504 |
|
MD5 | fd0fcc9ebf627ef1c87f737d359e2903 |
|
BLAKE2b-256 | 6fcd038c611102f852e1b89042789f1c59480082b516a963acf7e2931de6271c |
File details
Details for the file powerline_inject-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: powerline_inject-0.1.6-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93dc5b0b1ed69be5ace2c931a6911020c448aa86ae5bdccfa19b228c697f8db7 |
|
MD5 | a67cffcb391a4c2b754a833490b7a0e9 |
|
BLAKE2b-256 | 986dbfb4ac9a9e7d724cb9a28ae0a63572ff4e45c935244baa5b8cd681bc5488 |