{ inputs, pkgs, lib, config, ... }: let hyprlandEnabled = config.mod.hyprland.enable; in { home-manager.users.alex = { wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled { settings = { bind = let prev = "${pkgs.playerctl}/bin/playerctl -p naviterm,spotify previous"; next = "${pkgs.playerctl}/bin/playerctl -p naviterm,spotify next"; mkExec = key: cmd: { _args = [ key (lib.generators.mkLuaInline ''hl.dsp.exec_cmd("${cmd}")'') ]; }; in [ (mkExec "XF86AudioPrev" prev) (mkExec "XF86AudioNext" next) (mkExec "XF86AudioPlay" "${pkgs.playerctl}/bin/playerctl -p naviterm,spotify play-pause") (mkExec "XF86AudioPause" "${pkgs.playerctl}/bin/playerctl -p naviterm,spoitfy play-pause") (mkExec "SUPER + ALT + LEFT" prev) (mkExec "SUPER + ALT + RIGHT" next) (mkExec "SUPER + ALT + DOWN" "${pkgs.playerctl}/bin/playerctl -p naviterm,spotify play-pause") ]; }; }; home.packages = [ pkgs.playerctl pkgs.spotify inputs.naviterm.packages.${pkgs.stdenv.hostPlatform.system}.default ]; }; systemd.user.services.playerctld = { unitConfig = { Description = "starts playerctld daemon"; }; wantedBy = [ "default.target" ]; serviceConfig = { ExecStart = "${pkgs.playerctl}/bin/playerctld"; }; }; }