{ config, lib, pkgs, ... }: with lib; let cfg = config.ezpc; in { options.ezpc.enable = mkEnableOption "Enable ezpc system stuff"; config = mkIf cfg.enable { programs.hyprland.enable = true; xdg.portal = { enable = true; xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk ]; config = { common.default = ["gtk"]; hyprland.default = ["gtk" "hyprland"]; }; }; environment.sessionVariables = { QT_QPA_PLATFORM = "wayland;xcb"; MOZ_ENABLE_WAYLAND = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; ECORE_EVAS_ENGINE = "wayland_egl"; ELM_ENGINE = "wayland_egl"; _JAVA_AWT_WM_NONREPARENTING = "1"; NIXOS_OZONE_WL = "1"; SDL_VIDEODRIVER = "wayland"; CLUTTER_BACKEND = "wayland"; }; services.greetd = { enable = lib.mkDefault true; settings = { default_session = { command = lib.mkDefault "${pkgs.tuigreet}/bin/tuigreet --time --user-menu --user-menu-max-uid 30000 --cmd hyprland"; }; }; }; i18n.inputMethod = { type = lib.mkDefault "ibus"; enable = lib.mkDefault true; ibus.engines = with pkgs.ibus-engines; [typing-booster uniemoji]; }; }; }