{ config, lib, pkgs, ... }: let browser = "firefox"; in { imports = [ ../apps/discord.nix ../apps/element.nix ../options/monitors.nix ./audio.nix ./hypr/hyprland.nix ./mindwtr.nix ./rofi/rofi.nix ./sway.nix ./terminal.nix ]; home = { packages = with pkgs; [ # Desktop Applications gimp3 vlc # Common utilities feh networkmanagerapplet # network control gnome-keyring # Secret management glib # for Gnome/GTK settings gsettings-desktop-schemas # So that we can access gnome settings xdg-desktop-portal-hyprland xdg-desktop-portal-gtk # GTK backend for XDG components like pickers grim # Screenshot provider nwg-look # GTK settings editor playerctl # for universal play/pause etc wirelesstools waypaper # Wallpaper switcher ]; pointerCursor = { enable = true; gtk.enable = true; size = 16; package = pkgs.bibata-cursors; name = "Bibata-Modern-Classic"; # package = pkgs.phinger-cursors; # name = "phinger-cursors"; }; # Hint for electron apps to use wayland sessionVariables.NIXOS_OZONE_WL = "1"; # Miscelaneous config files file = { ".XCompose".source = ./config/XCompose; }; }; programs = { # browsers firefox = { enable = true; configPath = "${config.xdg.configHome}/mozilla/firefox"; }; chromium.enable = true; }; services = { # Secret management: unlocks on login (see security.pam.*.enableGnomeKeyring at # the system level) and provides the org.freedesktop.secrets D-Bus API plus an # ssh-agent component. gnome-keyring.enable = true; # gnome-keyring's ssh-agent could be used in place of the plain one. # Un-comment this if I'd rather use the system keyring instead of the ssh-agent. # ssh-agent.enable = lib.mkForce false; }; # GTK settings gtk = { enable = true; theme = { name = "Adwaita-dark"; package = pkgs.gnome-themes-extra; }; gtk3.extraConfig = { gtk-application-prefer-dark-theme = true; }; gtk4 = { # Don't use GTK4 themes. See https://stopthemingmy.app/ theme = null; extraConfig = { gtk-application-prefer-dark-theme = true; }; }; }; # This is where the real magic happens to tell the applications to prefer # dark mode. For example, Element reads from this setting. dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; # QT theming qt = { enable = true; platformTheme.name = "adwaita"; style.name = "adwaita-dark"; }; # Default apps xdg.mimeApps = { enable = true; defaultApplications = { "text/html" = [ "${browser}.desktop" ]; "default-web-browser" = [ "${browser}.desktop" ]; "x-scheme-handler/http" = [ "${browser}.desktop" ]; "x-scheme-handler/https" = [ "${browser}.desktop" ]; "x-scheme-handler/about" = [ "${browser}.desktop" ]; "x-scheme-handler/unknown" = [ "${browser}.desktop" ]; }; }; home.sessionVariables.DEFAULT_BROWSER = "${pkgs."${browser}"}/bin/${browser}"; }