Repository

Aktuelle Datei: /misc/dotfiles/nixos/pkgs/hyprland/default.nix

⬆️ Übergeordnetes Verzeichnis (..)

# Hyprland Config
{
  config,
  pkgs,
  inputs,
  system,
  security,
  ...
}: {
  config = {
    services = {
      xserver = {
        enable = true;
        displayManager = {
          gdm = {
            enable = true;
            wayland = true;
          };
        };
      };

      gvfs = {
        enable = true;
      };

      gnome = {
        gnome-keyring = {
          enable = true;
        };
      };
    };

    # locking with swaylock
    security = {
      pam = {
        services = {
          swaylock = {
            text = "auth include login";
          };
        };
      };

      polkit = {
        enable = true;
      };
    };

    # Hyprland joins the battle!
    programs = {
      hyprland = {
        enable = true;
      };
    };

    # Polkit on Hyprland needs some extra love
    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;
            };
          };
        };
      };
    };

    # XDG Desktop Portal
    xdg = {
      portal = {
        enable = true;
        extraPortals = with pkgs; [
          xdg-desktop-portal-hyprland
          xdg-desktop-portal-gtk
        ];
      };
    };

    # Hyprland-specific packages
    environment = {
      systemPackages = with pkgs;
        [
          arandr
          ffmpeg
          ffmpegthumbnailer
          grimblast
          kitty
          nwg-dock-hyprland
          nwg-look
          pamixer
          pavucontrol
          playerctl
          polkit_gnome
          rofi
          swaybg
          swaylock-effects
          swaynotificationcenter
          viewnior
          waybar
          wlogout
          wl-clipboard
          xarchiver
        ]
        ++ (with libsForQt5.qt5; [
          qtgraphicaleffects
        ])
        ++ (with lxqt; [
          lxqt-policykit
        ])
        ++ (with xfce; [
          orage
          thunar
          thunar-volman
          thunar-archive-plugin
          tumbler
        ]);

      variables = {
        POLKIT_BIN = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
        QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
      };
    };
  };
}

Größe: 2.59 KB