{ config, pkgs, stablePkgs, ... }: let configure-gtk = let schema = pkgs.gsettings-desktop-schemas; datadir = "${schema}/share/gsettings-schemas/${schema.name}"; gsettings = "${pkgs.glib}/bin/gsettings"; in pkgs.writeScriptBin "configure-gtk" '' #!${pkgs.dash}/bin/dash export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS ${gsettings} set org.gnome.desktop.interface gtk-theme 'gruvbox-dark' ${gsettings} set org.gnome.desktop.interface icon-theme 'Papirus-Dark' ${gsettings} set org.gnome.desktop.wm.preferences button-layout "" ''; in { imports = [ ./bemenu.nix ./foot.nix ./init.nix ./kanshi.nix ./kile.nix ./mako.nix ./swaybg.nix ./swaylock.nix ./waybar.nix ]; home.packages = with pkgs; [ configure-gtk glib gsettings-desktop-schemas kile-wl light pamixer playerctl river swaybg wl-clipboard wtype xdg-utils ]; programs.zsh.loginExtra = '' if [[ -z "''${DISPLAY}" ]] && [[ "''${XDG_VTNR}" -eq 1 ]]; then exec ${pkgs.river}/bin/river fi ''; home.sessionVariables.XKB_DEFAULT_LAYOUT = "us"; home.sessionVariables.XKB_DEFAULT_VARIANT = "altgr-intl"; home.sessionVariables.XKB_DEFAULT_OPTIONS = "caps:escape"; systemd.user.targets.river-session = { Unit = { Description = "river window manager session"; BindsTo = "graphical-session.target"; Wants = "graphical-session-pre.target"; After = "graphical-session-pre.target"; }; }; }