2195 Commits

Author SHA1 Message Date
Austin Horstman
36f1bd655f tests/chromium: add more test coverage 2026-04-22 12:30:51 -05:00
Austin Horstman
c5ceab9d94 tests/darwinScrublist: add chromium packages 2026-04-22 12:30:51 -05:00
Austin Horstman
f4e008848a chromium: expose google-chrome dictionaries and native hosts
Keep the proprietary Chrome extensions option removed, but make dictionaries and nativeMessagingHosts available for the explicit google-chrome, google-chrome-beta, and google-chrome-dev modules.

Add a focused regression test covering dictionary and native host files for all three browser namespaces.
2026-04-22 12:30:51 -05:00
Austin Horstman
c95595f732 chromium: fix native host paths for google-chrome
Follow the configured browser package when choosing NativeMessagingHosts paths so chromium overrides to google-chrome install manifests in Chrome's config directory. Keep extension and dictionary handling gated for proprietary Chrome, but always generate native messaging hosts, and cover the override case with a focused regression test.
2026-04-22 12:30:51 -05:00
Austin Horstman
afd5607108 rofi: support nested extraConfig sections
Render flat extraConfig entries inside the configuration block and nested attrsets as top-level Rasi sections so mode-specific and filebrowser configuration can be expressed directly in Nix. Fold the reported nested cases into the existing valid-config test instead of keeping issue-specific test files.
2026-04-22 09:59:56 -05:00
Austin Horstman
c77ebe06b4 khal: honor explicit default calendar
Closes #9040
2026-04-22 09:59:17 -05:00
Austin Horstman
c81775b640 xdg-autostart: allow empty readonly autostart
Create the readonly autostart link even when no managed entries are
present, so the option behavior matches its documentation and stays
covered by a focused regression test.
2026-04-20 11:12:32 -05:00
Austin Horstman
56b4526cfd nixos: guard home.uid with tryEval
Use tryEval when reading users.users.<name>.uid so configured NixOS
UIDs still propagate to home.uid while nix-darwin users without a
UID do not trigger a no-value-defined eval error.

Refs #8351
2026-04-20 10:58:30 -05:00
Bruno BELANYI
78ceb2dd5c rbw: do not serialize 'null' settings 2026-04-20 10:07:54 -05:00
Austin Horstman
0a8d50edf2 docs/nix-flakes: clarify extraSpecialArgs usage
Explain when to use extraSpecialArgs versus _module.args in the flake setup guides, and keep the generated standalone fixture aligned with the updated template output.
2026-04-20 09:36:51 -05:00
Bruno BELANYI
4bfce11ea8 xdg-user-dirs: add 'projects' 2026-04-20 00:08:02 -05:00
Bruno BELANYI
12ceb3974a tests/xdg-user-dirs-*: do not use 'PROJECTS'
Use `XDG_CUSTOM_DIR` instead, as it is unlikely to be added to the spec.
2026-04-20 00:08:02 -05:00
Austin Horstman
1ab3a4b78e test(tests): add --big-only filter
Keep the default test list broad so chunk targets remain visible
for CI debugging.

The new flag narrows module test discovery to cases gated by
test.enableBig when you want to focus on unique big test cases.
2026-04-19 23:49:40 -05:00
Austin Horstman
29f355a733 tests: decode non-UTF-8 nix build output
Closes #9007
2026-04-19 22:51:34 -05:00
Austin Horstman
b85e8fff94 lib/deprecations: suppress no-op state-version warnings
Closes #9045
2026-04-19 22:48:45 -05:00
Veselin Ivanov
565e534920 neovim: expose sideloadInitLua option to control the generation of init.lua
Add option to control generation of `init.lua` to allow opting out of the automatic generation. Add news entry about changed behavior and new option.
2026-04-17 14:27:57 -05:00
Ihar Hrachyshka
3c7524c683 treewide: set git pager for specific commands, not for core.pager
Setting `core.pager` may result in issues like swallowed `git grep` results. 
To avoid this, apply pagers to specific commands where we expect `diff`-ish output only. 
Use a common helper to set pager for all modules that configure it.
2026-04-14 11:31:44 -05:00
Benedikt Rips
5a728e434d tests/integration: simplify pkgs.linkFarm usage 2026-04-13 22:02:40 -05:00
Benedikt Rips
a93d80bcec treewide: remove unused attrs patterns 2026-04-13 22:02:40 -05:00
Benedikt Rips
71402c5df3 treewide: mark unused lambda arguments 2026-04-13 22:02:40 -05:00
betaboon
287f84846c opencode: align tools directory with upstream documentation 2026-04-12 21:14:59 -05:00
betaboon
26c9d5dca1 opencode: align agents directory with upstream documentation 2026-04-12 21:14:59 -05:00
betaboon
a5e824c862 opencode: align commands directory with upstream documentation 2026-04-12 21:14:59 -05:00
Robert Helgesson
7832a664c4 feedr: fix enable option description
Also minor stylistic fixes.
2026-04-12 10:58:28 -05:00
Vinicius Deolindo
16e50c6ffe gemini-cli: unify context description and let skills be a directory 2026-04-12 10:53:57 -05:00
Vinicius Deolindo
d6d2468b88 opencode: migrate rules to context 2026-04-12 10:53:57 -05:00
Vinicius Deolindo
447796d64a codex: migrate custom-instructions to context 2026-04-12 10:53:57 -05:00
Vinicius Deolindo
13df3b4e44 claude-code: migrate memory to context & skills{,Dir} to skills 2026-04-12 10:53:57 -05:00
yaaaarn
ffa740c0df syshud: add module
PR #9075
2026-04-12 17:45:41 +02:00
Pol Dellaiera
adf6e3aafb feedr: add module
Feedr is a modern terminal-based RSS/Atom feed reader with advanced filtering, categorization, and search capabilities. It supports both RSS and Atom feeds with compression handling and provides an intuitive TUI interface.
2026-04-12 10:39:55 -05:00
David Chocholatý
44111a5c6f jjui: Add options to configure settings in Lua including plugins
Options for https://idursun.github.io/jjui/customization/config-lua/.
2026-04-12 10:11:23 -05:00
David Chocholatý
0c8ef0f2b9 jjui: Fix default config directory path on Darwin
The default taken from jjui documentation:
https://idursun.github.io/jjui/customization/config-toml/
2026-04-12 10:11:23 -05:00
mikaeladev
f899c5d6f3 pipewire: add module 2026-04-11 11:21:32 +02:00
William Phetsinorath
f7f6a559c2 xdg: add support for local bin path
Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>

Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>
Change-Id: I045f07415467ca6d409a6f4d52e753866a6a6964
2026-04-11 09:58:37 +02:00
MrQubo
e35c39fca0 tmux: reduce default escapeTime 2026-04-09 19:43:45 -05:00
Austin Horstman
0eddb2cc1a neovim: use improved submodule deprecation detection
Prevent false positives with deprecation warning.
2026-04-09 19:09:46 -05:00
philip-730
a91f37efba services.darkman: add unified scripts option
Add a `scripts` option that places scripts in `$XDG_DATA_HOME/darkman/`,
darkman's unified script interface. The legacy `darkModeScripts` and
`lightModeScripts` options remain supported.

Closes #8940
2026-04-09 19:09:27 -05:00
Akshett Rai Jindal
5c663d5781 gemini-cli: add option for integration with programs.mcp.servers 2026-04-09 19:08:48 -05:00
Akshett Rai Jindal
5ef2b9862f gemini-cli: add skills option
Add programs.gemini-cli.skills for declarative skill files under ~/.gemini/skills.

Includes module tests for file and directory skill sources and inline content.
2026-04-09 19:08:48 -05:00
Matt Dembiczak
0f9090a77c aerc: encode username in account URLs
Usernames containing special characters like '@' were included
verbatim in IMAP/SMTP URLs, producing invalid URIs. Apply
'lib.strings.escapeURL' to the username so that these characters
are properly encoded.
2026-04-09 18:36:49 -05:00
jtrrll
505e91f877 glance: add darwin support 2026-04-09 18:13:04 -05:00
Lorenzo Manacorda
c975a66a56 niriswitcher: remove module
The upstream project has been archived.
2026-04-09 14:16:59 -05:00
Austin Horstman
74b0e97937 statix: enable empty_pattern
Enable statix's empty_pattern rule and apply its auto-fixes across the affected modules and tests.
2026-04-08 16:00:28 -05:00
Austin Horstman
01ea51d706 treewide: use inherit for attribute assignments
This change converts redundant attribute assignments of the form `a =
a;` or `a = someSet.a;` into cleaner `inherit` statements. This reduces
verbosity and follows common Nix style for bringing attributes into
scope.

Statix Codes: W03 (manual_inherit), W04 (manual_inherit_from)

Also include statix and the rule in our configuration.
2026-04-08 14:47:48 -05:00
Austin Horstman
7843c0025a vicinae: fix x-restart triggers 2026-04-08 14:38:50 -05:00
Robert Helgesson
527e47b78f files: handle overlapping file targets
The current behavior of `home.file` is inconsistent when handling
recursive file with another, overlapping, non-recursive file.

Specifically, consider a configuration

```nix
home.file = {
  "foo" = { source = ./foo; recursive = true; };
  "foo/bar".text = "some other file";
};
```

where `./foo` is a directory containing a file `bar`. Switching to
this configuration will result in the `./foo` directory being
recursively symlinked while the "foo/bar" entry is ignored. Note,
building the home files derivation does log

> File conflict for file 'foo/bar'

On the other hand, the supposedly equivalent configuration

```nix
home.file = {
  "foo" = { source = ./foo; recursive = true; };
  abc = { target = "foo/bar"; text = "some other file"; };
};
```

results in the `./foo` directory not being recursively symlinked,
i.e., only the file `foo/bar` shows up in the built configuration.
This time the home files build log contains

> File conflict for file 'foo'

This commit makes the behavior more consistent in that we always
handle the file in a unified manner. The conflict resolution is
offered in three flavors, "ignore", "error", and "override" indicating
whether the recursively symlinked file wins, the entire build errors
out, and the regularly symlinked file wins.

The current default is "ignore" since it is the resolution that most
closely matches the current behavior, at least when the file attribute
name is used as the target path.

The other two resolutions can be chosen by setting the
`home.fileOverlapResolution` option, which is set as invisible due to
its experimental nature.
2026-04-07 23:33:05 -05:00
Bernardo Meurer Costa
6f35bb9799 tmux: use idempotent new-session to avoid duplicate sessions
When both system-level (e.g., NixOS programs.tmux) and home-manager
tmux configs set newSession = true, tmux would create two sessions
on startup since both /etc/tmux.conf and ~/.config/tmux/tmux.conf
contain the new-session command.

Change new-session to new-session -A -s 0, which attaches to session
"0" if it exists, otherwise creates it. This makes the command
idempotent so multiple configs can safely enable newSession.
2026-04-07 21:52:27 -05:00
Miles Wirht
3d822c1dba dbeaver: init module 2026-04-07 21:32:28 -05:00
Benedikt Ritter
9cc761169a tmuxinator: use yml file ending
Files with yaml file ending are recognized by `tmuxinator start` but not
by `tmuxinator list`.

Resolves #9031
2026-04-07 13:40:48 -05:00
philip-730
92d382b982 programs.wezterm: add settings option
Add a `settings` option that allows WezTerm to be configured
declaratively using a Nix attribute set. Settings are serialized to
Lua using `lib.generators.toLua`. Raw Lua expressions such as
`wezterm.font` and `wezterm.action.*` can be embedded using
`lib.generators.mkLuaInline`.

When `settings` is set, `extraConfig` is still supported. It is
wrapped in an immediately invoked function expression so that any
`return` statement (including the common `return {}` and
`return config` patterns) is captured and merged on top of the
generated settings, preserving full backward compatibility.

The merge between `settings` and `extraConfig` is shallow: a key
returned from `extraConfig` replaces the entire corresponding value
from `settings`, including nested tables and arrays.

Closes #6047
2026-04-07 13:39:56 -05:00