Files
nix-config/modules/desktop-environments/hyprland/default.nix
2025-06-20 09:30:28 -05:00

100 lines
2.2 KiB
Nix
Executable File

{ pkgs, lib, ... }:
let
sddmTheme = "catppuccin-mocha";
in
{
imports = [
./environment.nix
];
home-manager.users.matt = import ./home.nix;
services = {
displayManager = {
sddm = {
enable = true;
package = pkgs.kdePackages.sddm;
theme = sddmTheme;
wayland.enable = true;
};
gdm.enable = lib.mkForce false;
defaultSession = "hyprland";
};
# disable plasma
desktopManager.plasma6.enable = lib.mkForce false;
desktopManager.gnome.enable = lib.mkForce false;
dbus.enable = true;
ddccontrol.enable = true;
blueman.enable = true;
};
programs.hyprland = {
enable = true;
xwayland.enable = true;
portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
programs.nm-applet.enable = true;
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
extraConfig = ''
DefaultTimeoutStopSec=10s
'';
};
security = {
polkit.enable = true;
# configure sudo
sudo.extraRules = [
{
commands = [
{
command = "/run/current-system/sw/bin/waybar-weather";
options = [ "NOPASSWD" ];
}
{
command = "/run/current-system/sw/bin/waybar-updates";
options = [ "NOPASSWD" ];
}
];
groups = [ "wheel" ];
}
];
};
xdg.portal = {
enable = true;
wlr.enable = false;
xdgOpenUsePortal = false;
extraPortals = [
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
];
};
nixpkgs.overlays = [
(self: super: {
waybar = super.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
});
})
];
}