Right now we load `hm-session-vars.sh` from
`config.home.profileDirectory`, generally resulting in the following
code being generated in `zshenv`:
```
. "/etc/profiles/per-user/<username>/etc/profile.d/hm-session-vars.sh"
```
This is problematic in a few situations. For example, when entering a
`distrobox` environment I got the following error:
```
/home/<username>/.zshenv:.:2: no such file or directory: /etc/profiles/per-user/<username>/etc/profile.d/hm-session-vars.sh
```
Instead, let's point to the path directly to the `/nix/store` by using
`config.home.sessionVariablesPackage` instead. This is more robust and
it is more consistent with other things we source in ZSH.
Configuration entry similar to;
```nix
programs.radio-active.enable = true;
```
By default `ffplay` is used for recording/playback, but that can be
changed by applying either of the following;
```nix
programs.radio-active.settings.AppConfig.player = "vlc";
programs.radio-active.settings.AppConfig.player = "mpv";
```
All other configuration options documented by;
https://github.com/deep5050/radio-active?tab=readme-ov-file#default-configs
maybe applied under the `AppConfig` attribute set.
Finally, the `aliases` attribute set allows for defining key/value pares
that will generate a `~/.radio-active-alias` of bookmarked stations, for
example something like;
```nix
programs.radio-active.aliases = {
"Deep House Lounge" = "http://198.15.94.34:8006/stream";
};
```
... will result in;
```
Deep House Lounge==http://198.15.94.34:8006/stream
```
WARN: Darwin hosts may report issues about `pkgs.vlc`
Co-authored-by: Robert Helgesson <robert@rycee.net>
Replace individual setopt statements with array-based loops for cfg.setOptions.
Use lib.hm.zsh.define for consistent array formatting and add unset statements
to clean up temporary variables, improving consistency with other zsh optimizations.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Replace individual setopt/unsetopt statements for history options with efficient
array-based loops. Also optimize history substring search key bindings using
the same pattern. Use lib.hm.zsh.define for consistent array formatting and
add unset statements to clean up temporary variables.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Replace individual plugin PATH/fpath statements and conditional sourcing with
efficient array-based loops. Use lib.hm.zsh.define for consistent array
formatting and add unset statements to clean up temporary variables.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Replace naive string quoting with lib.escapeShellArg for proper shell escaping
of special characters, spaces, and quotes. Integrate with new formatShellArrayContent
for intelligent multi-line array formatting in zsh array definitions.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Add shared utility function that formats shell arrays with smart width optimization.
Packs multiple items per line based on available width (~78 chars per line) while
maintaining readability. Includes helper functions wrapLines and formatMultiLine.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Package removed from nixpkgs, project repository was archived two years
ago and no longer maintained.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>