Starting kanshi via systemd user - swaywm

I’m trying to start kanshi via systemd as per the docs but when I start the service, I receive the following error: Failed to start kanshi.service: Unit sway-session.target not found.

Sway is not running via systemd, I assume the kanshi systemd service file is looking for a sway service that started before starting kanshi. My attempt to get around this was to set the service wantedBy/after lists to [] but it didn’t help.

Kanshi is being configured using Home Manager.

What am I doing wrong?

Also should kanshi_config_file be replaced by something? I’m not sure how to reference the config file being created by Home Manager.

Thanks!

# /etx/nixos/configuration.nix
# kanshi systemd service
systemd.user.services.kanshi = {
  enable = true;
  description = "kanshi daemon";
  wantedBy = [];
  after = [];
  serviceConfig = {
    Type = "simple";
    ExecStart = ''${pkgs.kanshi}/bin/kanshi -c kanshi_config_file'';
  };
};
# /etc/nixos/home_manager.nix
{ config, pkgs, ... }:
let
  home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-22.11.tar.gz";
in
{
  imports = [
    (import "${home-manager}/nixos")                                          
  ];
      
  home-manager.users.frigidcode = {
    /* The home.stateVersion option does not have a default and must be set */
    home.stateVersion = "22.11";
  
    home.packages = with pkgs; [ 
      firefox
      thunderbird     
      element-desktop
      signal-desktop   
      tdesktop # telegram
      slack
    ];
  
    services.kanshi = {
    # eDP-1 is the laptop screen
    # DP-2 is the docked monitor
      enable = true;
      profiles = {    
        docked = {
          outputs = [
            {  
              criteria = "DP-2";
              status = "enable";
              position = "0,0";
            }
            {
              criteria = "eDP-1";
              status = "disable";
            }
          ];
        };
        undocked = {
          outputs = [
            {
              criteria = "eDP-1";
              status = "enable";
              position = "0,0";
            }
          ];
        };
      };
    };
    # end kanshi
      
    programs.zsh = {
      enable = true;
      enableAutosuggestions = true;
      enableSyntaxHighlighting = true;
      dirHashes = {
        docs = "$HOME/Documents";
        vids = "$HOME/Videos";
        dl = "$HOME/Downloads";
        le = "$HOME/repos/lolo_gifts";
      };
      oh-my-zsh = {
        enable = true;
        plugins = [
          "git"
          "sudo"
        ];
        theme = "robbyrussell";
      };
    };
    # end zsh
  };
}

The solution was to set services.kanshi.systemdTarget to an empty string.