{ pkgs, lib, config, ... }: let inherit (lib) mkEnableOption mkIf; cfg = config.my.hyprland; in { options.my.hyprland = { enable = mkEnableOption "hyprland"; }; config = mkIf cfg.enable { hm.my.hyprland.enable = true; programs.hyprland = { enable = true; }; # Hint electron apps to use wayland environment.sessionVariables.NIXOS_OZONE_WL = "1"; 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"; }; }; }; }; }