{ flake.modules.homeManager.walker = { config, lib, pkgs, ... }: let elephantCommand = lib.getExe pkgs.elephant; launcherCommand = lib.getExe config.services.walker.package; in { home.packages = [ pkgs.elephant ]; services.walker = { enable = true; systemd.enable = true; }; systemd.user.services = { elephant = { Unit = { Description = "Elephant application launcher backend"; PartOf = [ "graphical-session.target" ]; After = [ "graphical-session.target" ]; }; Install.WantedBy = [ "graphical-session.target" ]; Service = { ExecStart = elephantCommand; Restart = "always"; RestartSec = 10; }; }; walker.Unit = { Wants = [ "elephant.service" ]; After = [ "elephant.service" ]; }; }; meta.desktop.launcher = { package = config.services.walker.package; commands = { open = [ launcherCommand ]; files = [ launcherCommand "--query" "/" "--placeholder" "Find files" ]; dmenu = [ launcherCommand "--dmenu" "--placeholder" "Search clipboard" ]; }; }; }; }