dotfiles/modules/programs/hyprland/default.nix

72 lines
1.7 KiB
Nix
Raw Normal View History

2022-11-25 10:24:29 +01:00
{ config
, lib
, pkgs
, inputs
, ...
}:
with lib;
let
cfg = config.my.programs.hyprland;
hyprland-default = inputs.hyprland.packages.${pkgs.system}.default;
hyprland-nvidia = hyprland-default.override { nvidiaPatches = true; };
hyprland = if cfg.nvidiaSupport then hyprland-nvidia else hyprland-default;
in
{
options.my.programs.hyprland = {
enable = mkEnableOption "hyprland";
nvidiaSupport = mkEnableOption "enable nvidia Support";
};
config = mkIf cfg.enable {
home-manager.users.moritz = {
imports = [ inputs.hyprland.homeManagerModules.default ];
programs.waybar = {
enable = true;
package = pkgs.waybar-hyprland;
systemd.enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [
"eDP-1"
"HDMI-A-1"
];
modules-left = [ "wlr/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [ "network" "memory" "cpu" "battery" "clock" ];
modules = {
"wlr/workspaces" = {
on-click = "activate";
};
};
};
};
};
wayland.windowManager.hyprland = {
enable = true;
package = hyprland;
extraConfig = builtins.readFile ./hyprland.conf;
};
};
programs.hyprland = {
enable = true;
package = null;
};
services.xserver = {
enable = true;
displayManager = {
gdm.enable = true;
sessionPackages = [ hyprland ];
};
};
xdg.portal = {
enable = true;
wlr.enable = true;
};
};
}