{ config, marleylib, lib, ... }: let cfg = config.marleycfg.profiles; inherit (marleylib.module) enabled; in { marleyos = lib.mkMerge [ # Universal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { programs = { agenix = enabled; bat = enabled; btop = enabled; curl = enabled; eza = enabled; figlet = enabled; fish = enabled; gpg = enabled; httpie = enabled; hyfetch = enabled; journalctl = enabled; jq = enabled; just = enabled; lazydocker = enabled; lazygit = enabled; less = enabled; man = enabled; nh = enabled; ripgrep = enabled; ssh = enabled; starship = enabled; systemctl = enabled; tmux = enabled; wget = enabled; zoxide = enabled; }; } # # # Graphical Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - - (lib.optionalAttrs cfg.desktop { shell.niri = enabled; programs = { amfora = enabled; cava = enabled; CEmu = enabled; cheat = enabled; discord = enabled; floorp = enabled; fzf = enabled; gh = enabled; glow = enabled; jqp = enabled; ncmpcpp = enabled; nemo = enabled; neo = enabled; neovim = enabled; phpstorm = enabled; pidgin = enabled; superfile = enabled; tea = enabled; thunderbird = enabled; vlc = enabled; wezterm = enabled; }; services = { udiskie = enabled; }; }) # # # Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (lib.optionalAttrs cfg.server {}) ]; }