refactor(modules): rewrite some modules; add dconf

This commit is contained in:
Artur Manuel 2025-01-21 15:45:42 +00:00
commit 7938019d55
15 changed files with 131 additions and 59 deletions

View file

@ -4,15 +4,12 @@
lib,
...
}: let
cfg = config.alqueva.xonsh;
attrsToPyDict = attrs: (lib.pipe attrs [
(builtins.mapAttrs (n: v: "aliases['${n}'] = '${v}'"))
builtins.attrValues
(lib.concatStringsSep "\n")
(s: s + "\n")
]);
cfg = config.alqueva.shells.xonsh;
aliasesToPyDict = aliases:
lib.concatStringsSep "\n"
(lib.mapAttrsToList (k: v: "aliases['${k}'] = '${v}'") aliases);
in {
options.alqueva.xonsh = {
options.alqueva.shells.xonsh = {
enable = lib.mkEnableOption "xonsh";
package = lib.mkPackageOption pkgs "xonsh" {};
};
@ -20,13 +17,14 @@ in {
config = lib.mkIf cfg.enable {
programs = {
xonsh = {
config =
"from xonsh.xontribs import get_xontribs\n"
+ attrsToPyDict config.environment.shellAliases
+ ''
for xontrib in get_xontribs():
xontrib load @(xontrib)
'';
config = ''
from xonsh.xontribs import get_xontribs
${aliasesToPyDict config.environment.shellAliases}
for xontrib in get_xontribs():
xontrib load @(xontrib)
'';
inherit (cfg) package;
enable = true;
};