{ pkgs, inputs, lib, config, ... }: let inherit (lib) mkEnableOption mkIf; pkgs-hyprland = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; cfg = config.my.hyprland; in { options.my.hyprland = { enable = mkEnableOption "hyprland"; }; config = mkIf cfg.enable { hm.my.hyprland.enable = true; programs.hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.system}.hyprland; }; hardware.opengl = { package = pkgs-hyprland.mesa.drivers; driSupport32Bit = true; package32 = pkgs-hyprland.pkgsi686Linux.mesa.drivers; }; services.gnome.gnome-keyring.enable = true; security.pam.services.greetd.enableGnomeKeyring = true; environment.systemPackages = with pkgs; [ # Theme adw-gtk3 # Applications gnome.nautilus gnome.sushi gnome.eog gnome.totem gnome.cheese gnome.file-roller gnome.gnome-weather gnome.gnome-contacts gnome.gnome-calendar gnome.gnome-screenshot gnome.gnome-dictionary gnome.gnome-font-viewer gnome.gnome-system-monitor monophony # music player # Nvim clipboard wl-clipboard ]; # Required for Nautilus to work outside GNOME services.gvfs.enable = true; # Use CAPSLOCK as Hyper key services.keyd = { enable = true; keyboards.default = { ids = ["*"]; settings.main = { capslock = "overload(meta, esc)"; }; }; }; services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; user = "greeter"; }; }; }; }; }