{ pkgs, inputs, ... }: { services.displayManager.sddm.enable = true; # TODO: look into ly/greetd/something less heavy services.displayManager.autoLogin = { enable = true; user = "djai"; }; # 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"; }; }; programs.hyprland = { enable = true; withUWSM = true; }; programs.hyprlock.enable = true; programs.uwsm = { enable = true; waylandCompositors = { hyprland = { prettyName = "Hyprland"; comment = "Hyprland compositor managed by UWSM"; binPath = "/run/current-system/sw/bin/Hyprland"; }; }; }; 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 ]; # services.gvfs.enable = true; services.udisks2.enable = true; services.printing.enable = true; users.users.djai.packages = with pkgs; [ hyprpicker hyprsunset wf-recorder wmctrl hyprprop hyprlandPlugins.hypr-darkwindow kanshi rofi waybar wl-clipboard wl-clipboard-x11 swaybg ]; # TODO: qt theming qt = { enable = true; platformTheme = "qt5ct"; # might have to go back to gnome if this makes kdenlive crash style = "adwaita-dark"; }; # 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" ]; # TODO: other mimetypes? xdg.mime.defaultApplications = { "inode/directory" = [ "kitty" ]; "text/html" = [ "librewolf.desktop" ]; "x-scheme-handler/http" = [ "liberwolf.desktop" ]; "x-scheme-handler/https" = [ "librewolf.desktop" ]; }; # TODO: check we like these defaults xdg.portal = { enable = true; config = { common.default = [ "gtk" ]; hyprland = { default = [ "gtk" "hyprland" ]; "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ]; "org.freedesktop.impl.portal.OpenURI" = [ "gtk" ]; }; }; # programs.hyprland adds the Hyprland portal. extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; }; # TODO: start using home manager # home-manager.users.djai = { # imports = [ ./hyprland.nix ]; # loogat husseins dots for inspo # # home.packages = with pkgs; [ ]; # # # TODO: cursor + icon theming # gtk = { # enable = true; # iconTheme = { # name = "Papirus-Dark"; # package = pkgs.papirus-icon-theme; # }; # }; # }; }