{ config, lib, pkgs, hyprland, wallpapers, catppuccin-themes, ... }: { imports = [ hyprland.homeManagerModules.default ../alacritty/tiling.nix ./waybar/default.nix ./swaync/default.nix ./rofi/default.nix ./swaylock.nix ./gtk.nix ]; home.packages = with pkgs; [ libsForQt5.polkit-kde-agent mc signal-desktop libreoffice zotero ]; 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; extraConfig = import ./config.nix { inherit config pkgs; theme = catppuccin-themes.hyprland; }; }; xdg = { configFile = { "hypr/hyprpaper.conf".text = '' preload = ${wallpapers.default} wallpaper = ,${wallpapers.default} ''; "hypr/macchiato.conf".source = ./macchiato.conf; "hypr/extra.conf" = lib.mkDefault { text = ""; }; }; mimeApps = let associations = { "image/jpeg" = [ "swayimg.desktop" ]; "image/png" = [ "swayimg.desktop" ]; "application/pdf" = [ "zathura.desktop" "emacs.desktop" ]; "application/json" = [ "emacs.desktop" "firefox.desktop" ]; "application/x-yaml" = [ "emacs.desktop" ]; "text/csv" = [ "calc.desktop" "emacs.desktop" ]; }; in { enable = true; defaultApplications = associations; associations.added = associations; }; }; }