{ lib, pkgs, inputs, ... }: { imports = [ ./hypr.nix ]; services.greetd = { enable = true; useTextGreeter = true; settings = rec { initial_session = { command="${pkgs.uwsm}/bin/uwsm start hyprland.desktop"; user = "djai"; }; default_session = { command = "${pkgs.tuigreet}/bin/tuigreet"; user = "greeter"; }; }; }; # note that we set the videodrivers on a per-host basis, so not here. services.xserver = { enable = true; xkb = { layout = "us"; variant = "euro"; options = "caps:escape"; }; }; console.useXkbConfig = true; hardware.graphics = { enable = true; enable32Bit = true; }; hardware.bluetooth.enable = true; services.blueman.enable = true; fonts.packages = with pkgs; [ nerd-fonts.caskaydia-cove nerd-fonts.fira-code nerd-fonts.iosevka nerd-fonts.shure-tech-mono nerd-fonts.symbols-only yudit ]; services.udisks2.enable = true; services.printing.enable = true; users.users.djai.packages = with pkgs; [ candy-icons hyprpicker hyprprop waybar tuigreet wf-recorder grimblast wmctrl kanshi rofi wl-clipboard wl-clipboard-x11 swaybg catppuccin-qt5ct ]; # i have no clue what this does. # GLib aborts any program that loads a GSettings schema it can't find, and Qt's GTK file dialog needs gtk3's. Nothing else puts these on the path. environment.sessionVariables.GSETTINGS_SCHEMA_DIR = builtins.concatStringsSep ":" [ "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas" "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas" ]; environment.pathsToLink = [ "/share/xdg-desktop-portal" "/share/applications" ]; home-manager.users.djai = { xdg = { autostart.enable = true; mimeApps = { enable = true; defaultApplications = { "inode/directory" = [ "kitty.desktop" ]; "image/gif" = [ "mpv.desktop" ]; "text/html" = [ "librewolf.desktop" ]; "application/pdf" = [ "zathura.desktop" ]; "image/*" = [ "feh.deskop" ]; "x-scheme-handler/http" = [ "librewolf.desktop" ]; "x-scheme-handler/https" = [ "librewolf.desktop" ]; }; }; portal = { enable = true; config.hyprland = { default = [ "hyprland" ]; "org.freedesktop.impl.portal.FileChooser" = lib.mkForce [ "termfilechooser" ]; }; extraPortals = with pkgs; lib.mkForce [ xdg-desktop-portal-hyprland xdg-desktop-portal-termfilechooser ]; }; }; # manually symlink candy-icons into $HOME home.file.".icons/candy-icons".source = "${pkgs.candy-icons}/share/icons/candy-icons"; home.pointerCursor.enable = true; # catppuccin wanted this for cursors catppuccin = { cursors = { enable = true; accent = "dark"; }; qt5ct.enable = true; }; qt = { style.name = "kvantum"; # required for catppuccin-nix platformTheme.name = "qtct"; enable = true; }; }; }