let
mprocsBase =
{ pkgs, lib, ... }:
let
inherit (lib.lists) singleton;
yaml = pkgs.formats.yaml { };
settings = {
hide_keymap_window = true;
proc_list_width = 18;
keymap_procs = {
"<C-j>" = {
c = "batch";
cmds = [
{ c = "next-proc"; }
{ c = "focus-term"; }
];
};
"<C-k>" = {
c = "batch";
cmds = [
{ c = "prev-proc"; }
{ c = "focus-term"; }
];
};
};
keymap_term = {
"<C-j>" = {
c = "batch";
cmds = [
{ c = "focus-procs"; }
{ c = "next-proc"; }
{ c = "focus-term"; }
];
};
"<C-k>" = {
c = "batch";
cmds = [
{ c = "focus-procs"; }
{ c = "prev-proc"; }
{ c = "focus-term"; }
];
};
};
};
in
{
hjem.extraModules = singleton {
packages = singleton pkgs.mprocs;
xdg.config.files."mprocs/mprocs.yaml".source = yaml.generate "mprocs.yaml" settings;
};
};
in
{
flake.modules.nixos.mprocs = mprocsBase;
flake.modules.darwin.mprocs = mprocsBase;
}