forked from Shinonome/dots-hyprland
aa15572c68
Added instructions for managing Python packages and using virtual environments.
How to add/remove python package?
- Edit
requirements.in. You may refer to PyPI for possible package names.- See also uv doc.
- Run
uv pip compile requirements.in -o requirements.txtin this folder.
How will the python packages get installed?
- They will be installed to the virtual environment
$ILLOGICAL_IMPULSE_VIRTUAL_ENV. - The default value of
$ILLOGICAL_IMPULSE_VIRTUAL_ENVis$XDG_STATE_HOME/quickshell/.venv. - See the function
install-python-packages()defined in/scriptdata/lib/package-installers.shfor details.
How to use the python packages installed through here?
Basically you'll need to activate the virtual environment first:
source $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate
then use the python package inside it; After that you probably need to deactivate it:
deactivate
Situation 1: Call the command directly
Take kde-material-you-colors as example.
source "$(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate"
kde-material-you-colors "$mode_flag" --color "$color" -sv "$sv_num"
deactivate
Situation 2: Use python script (wrapped)
Take generate_colors_material.py as example:
source "$(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate"
python3 "$SCRIPT_DIR/generate_colors_material.py" "${generate_colors_material_args[@]}" \
> "$STATE_DIR"/user/generated/material_colors.scss
"$SCRIPT_DIR"/applycolor.sh
Situation 3: Use python script (shebang)
Note: This method is only for simple situation. It can not deal with complex arguments (e.g. filaname containing spaces) passed to the python script.
Take generate_colors_material.py as example, add the shebang below to its beginning:
#!/usr/bin/env -S\_/bin/sh\_-c\_"source\_\$(eval\_echo\_\$ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate&&exec\_python\_-E\_"\$0"\_"\$@""
Then you should run the script directly, i.e. ./generate_colors_material.py, not python3 generate_colors_material.py.