71 lines
1.9 KiB
Nix
71 lines
1.9 KiB
Nix
{
|
|
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";
|
|
};
|
|
};
|
|
|
|
# Ensure the parent dir of the secret's path is owned by alex; otherwise
|
|
# agenix creates it as root.
|
|
systemd.tmpfiles.rules = [
|
|
"d /home/alex/.config/naviterm 0755 alex users -"
|
|
];
|
|
|
|
age.secrets."naviterm-config" = {
|
|
file = ../../../../secrets/pinwheel/naviterm-config.age;
|
|
path = "/home/alex/.config/naviterm/config.ini";
|
|
owner = "alex";
|
|
group = "users";
|
|
};
|
|
}
|