# Hyprland is a dynamic tiling Wayland compositor that is highly customizable and performant. { pkgs, config, lib, ... }: let border-size = config.theme.border-size; gaps-in = config.theme.gaps-in; gaps-out = config.theme.gaps-out; active-opacity = config.theme.active-opacity; inactive-opacity = config.theme.inactive-opacity; rounding = config.theme.rounding; blur = config.theme.blur; keyboardLayout = config.var.keyboardLayout; background = "rgb(" + config.lib.stylix.colors.base00 + ")"; in { imports = [ ./animations.nix ./bindings.nix ./polkitagent.nix ./keyboard-backlight.nix # CHANGEME: This is for omen laptop only ]; home.packages = with pkgs; [ qt5.qtwayland qt6.qtwayland libsForQt5.qt5ct qt6Packages.qt6ct hyprshot hyprpicker swappy imv wf-recorder wlr-randr wl-clipboard brightnessctl gnome-themes-extra libva dconf wayland-utils wayland-protocols glib direnv meson ]; wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; systemd = { enable = false; variables = [ "--all" ]; # https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#programs-dont-work-in-systemd-services-but-do-on-the-terminal }; package = null; portalPackage = null; settings = { "$mod" = "SUPER"; "$shiftMod" = "SUPER_SHIFT"; exec-once = [ "dbus-update-activation-environment --systemd --all &" "systemctl --user enable --now hyprpaper.service &" ]; monitor = [ "eDP-2,highres,0x0,1" # My internal laptop screen "desc:AOC U34G2G1 0x00000E06,3440x1440@99.98,auto,1" # My external monitor "desc:United Microelectr Corporation UMC SHARP,3840x2160,auto,2" # TV ",prefered,auto,1" # default ]; env = [ "XDG_CURRENT_DESKTOP,Hyprland" "MOZ_ENABLE_WAYLAND,1" "ANKI_WAYLAND,1" "DISABLE_QT5_COMPAT,0" "NIXOS_OZONE_WL,1" "XDG_SESSION_TYPE,wayland" "XDG_SESSION_DESKTOP,Hyprland" "QT_AUTO_SCREEN_SCALE_FACTOR,1" "QT_QPA_PLATFORM=wayland,xcb" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "ELECTRON_OZONE_PLATFORM_HINT,auto" "__GL_GSYNC_ALLOWED,0" "__GL_VRR_ALLOWED,0" "DISABLE_QT5_COMPAT,0" "DIRENV_LOG_FORMAT," "WLR_DRM_NO_ATOMIC,1" "WLR_BACKEND,vulkan" "WLR_RENDERER,vulkan" "WLR_NO_HARDWARE_CURSORS,1" "SDL_VIDEODRIVER,wayland" "CLUTTER_BACKEND,wayland" "AQ_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1" # CHANGEME: Related to the GPU ]; cursor = { no_hardware_cursors = true; default_monitor = "eDP-2"; }; general = { resize_on_border = true; gaps_in = gaps-in; gaps_out = gaps-out; border_size = border-size; layout = "master"; "col.inactive_border" = lib.mkForce background; }; decoration = { active_opacity = active-opacity; inactive_opacity = inactive-opacity; rounding = rounding; shadow = { enabled = true; range = 20; render_power = 3; }; blur = { enabled = if blur then "true" else "false"; size = 18; }; }; master = { new_status = true; allow_small_split = true; mfact = 0.5; }; gesture = "3, horizontal, workspace"; misc = { vfr = true; disable_hyprland_logo = true; disable_splash_rendering = true; disable_autoreload = true; focus_on_activate = true; }; input = { kb_layout = keyboardLayout; kb_options = "caps:escape"; follow_mouse = 1; sensitivity = 0.5; repeat_delay = 300; repeat_rate = 50; numlock_by_default = true; touchpad = { natural_scroll = true; clickfinger_behavior = true; }; }; }; }; }