{ config, lib, pkgs, hyprland, anyrun, wallpapers, ... }: let configure-gtk = pkgs.writeTextFile { name = "configure-gtk"; destination = "/bin/configure-gtk"; executable = true; text = let schema = pkgs.gsettings-desktop-schemas; datadir = "${schema}/share/gsettings-schemas/${schema.name}"; gtk-theme = config.gtk.theme.name; icon-theme = config.gtk.iconTheme.name; cursor-theme = config.gtk.cursorTheme.name; in '' export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS gnome_schema=org.gnome.desktop.interface gsettings set $gnome_schema gtk-theme '${gtk-theme}' gsettings set $gnome_schema icon-theme '${icon-theme}' gsettings set $gnome_schema cursor-theme '${cursor-theme}' ''; }; in { imports = [ hyprland.homeManagerModules.default ../alacritty/tiling.nix ./waybar/default.nix ./swaync/default.nix ./rofi/default.nix ./anyrun/default.nix ./swaylock.nix ./gtk.nix ]; home.packages = with pkgs; [ libsForQt5.polkit-kde-agent configure-gtk ]; programs = { emacs.package = pkgs.emacs29-pgtk; firefox.package = pkgs.firefox-wayland; rofi = { package = pkgs.rofi-wayland; terminal = "${pkgs.alacritty}/bin/alacritty"; pass.extraConfig = '' backend=wtype clibpoard_backend=wl-clipboard ''; }; }; services.kanshi = { enable = true; systemdTarget = "hyprland-session.target"; }; wayland.windowManager.hyprland = { enable = true; package = null; # Use package from nixpkgs xwayland = { enable = true; hidpi = true; }; extraConfig = import ./config.nix { pkgs = pkgs; anyrun = anyrun; }; }; xdg.configFile = { "hypr/hyprpaper.conf".text = '' preload = ${wallpapers.outputs.default} wallpaper = ,${wallpapers.outputs.default} ''; "hypr/macchiato.conf".source = ./macchiato.conf; "hypr/extra.conf" = lib.mkDefault { text = ""; }; }; }