nixnew/modules/hyprland/default.nix

74 lines
1.6 KiB
Nix
Raw Permalink Normal View History

2023-06-22 08:04:50 +00:00
{ system, inputs, impurity, lib, config, pkgs, ... }: let
2024-03-10 12:38:24 +00:00
inherit (inputs) hyprland hyprland-hy3 quickshell;
2023-06-22 08:04:50 +00:00
2024-01-02 05:15:39 +00:00
# I blame home manager
wrapper = pkgs.callPackage ({ ... }: pkgs.writeShellScriptBin "hyprland" ''
${builtins.readFile ./session.sh}
2023-06-22 08:04:50 +00:00
${config.hyprland-session.prerun}
${hyprland.packages.${system}.default}/bin/Hyprland $@
2024-01-02 05:15:39 +00:00
'') {};
2023-06-22 08:04:50 +00:00
in {
imports = [ hyprland.nixosModules.default ];
options.hyprland-session = with lib; {
prerun = mkOption {
type = types.separatedString "\n";
default = "";
};
extraConfig = mkOption {
type = types.separatedString "\n";
default = "";
};
};
config = {
programs.hyprland.enable = true;
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
2023-06-27 05:09:25 +00:00
xdg.portal = {
enable = true;
2024-01-02 05:15:39 +00:00
2023-06-27 05:09:25 +00:00
extraPortals = with pkgs; [
xdg-desktop-portal-kde
];
2024-01-02 05:15:39 +00:00
config.common.default = [
"hyprland"
"kde"
];
2023-06-27 05:09:25 +00:00
};
2023-06-22 08:04:50 +00:00
home-manager.users.${config.main-user} = {
imports = [ hyprland.homeManagerModules.default ];
2023-06-26 01:15:34 +00:00
home.packages = with pkgs; [
wrapper
# environment programs
wl-clipboard
grim
slurp
playerctl
wf-recorder
];
2023-06-22 08:04:50 +00:00
wayland.windowManager.hyprland = {
enable = true;
package = wrapper;
plugins = [ hyprland-hy3.packages.${system}.default ];
2023-06-22 08:04:50 +00:00
extraConfig = ''
source = ${impurity.link ./hyprland.conf}
${config.hyprland-session.extraConfig}
'';
};
};
};
}