Commit Graph

17 Commits

Author SHA1 Message Date
Austin Horstman
f84f474c1b zsh: respect xdg.enable for dotDir
Make sure we actually respect a user's `xdg.enable` preference.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman
5432dc5bc4 zsh: fix dotDir path normalization and quoting
Fixes issue where dotDir with trailing slash caused failures.
Refactors lib.nix to use raw paths internally, fixing issues with spaces
in paths.
Updates history.path logic to correctly handle raw absolute paths.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman
0b44044694 treewide: meta.maintainers at top
Just make it consistent throughout codebase and easier to find
maintainers for a module.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:51:05 -06:00
Thiago Kenji Okada
9e0453a9b0 zsh: source session variable file directly
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.
2025-09-30 07:50:26 -05:00
Austin Horstman
a97df40c19 zsh: envVarsStr fix indentation
Use new indentation support to generate properly indented variables

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-28 14:44:14 -05:00
Austin Horstman
3aaf340173 zsh: optimize setOptions with array-based loops
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>
2025-09-27 13:18:01 -05:00
Benedikt M. Rips
36ad7d25fb zsh: option to define autoloadable site-functions (#7611)
Add an option to the Zsh module that allows defining autoloadable site functions.
2025-08-05 14:03:10 -05:00
Austin Horstman
471eeaa975 zsh: add khaneliman maintainer
Been active in it and use it a lot.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman
e52c6c3da3 zsh: env var assertion for dotdir
Needs to be known at build time. Ensure user doesn't accidentally use
env var in `dotDir`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman
40af7ba06b zsh: relative path deprecation warning
Warn users when they configure a relative path. We want to encourage
using absolute paths and env variables.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Kristopher James Kent (kjkent)
21399deff2 zsh: improve dotDir handling
Previously, `config.programs.zsh.dotDir` prepended strings with `$HOME`.
This caused issues like nix-community#5100, where `$HOME` is
inconsistently resolved in time for the evaluation of the option. The handling
of this variable is also inconsistent with how paths are handled elsewhere,
including within the same module, where `config.programs.zsh.history.path`
does not mutate the supplied string.

To preserve backwards compatibility, this change prepends
`config.home.homeDirectory` to relative paths, while assigning absolute paths
unchanged. Tests for both cases are added.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-25 13:15:29 -05:00
Austin Horstman
196487c54f zsh: group plugins in a separate directory
Make it more scalable to prevent crowding the main folder.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman
26b987cf88 zsh: move deprecated options to separate file
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman
80a07bc6f7 zsh: move history to separate file
zsh is incredibly bloated, moving history to separate file

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman
3d95ab3cdc zsh: move zprof to separate file
zsh is incredibly bloated, moving zprof to separate file

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman
9b76feafd0 zsh: move oh-my-zsh to separate file
zsh is incredibly bloated, moving oh-my-zsh to separate file

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman
4fca600cb1 treewide: implement auto importing for modules
Reduce maintenance burden and increase efficiency by automatically
importing modules following a specific convention.

Co-authored-by: awwpotato <awwpotato@voidq.com>
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00