{lib, inputs, pkgs, gpu, platform, theme, ...}: { # nixpkgs = { # overlays = [ # # https://github.com/nix-community/nixpkgs-wayland # inputs.nixpkgs-wayland.overlay # ]; # }; imports = [ inputs.stylix.nixosModules.stylix ./themes/${theme}.nix ]; stylix = { targets = { plymouth.enable = false; }; autoEnable = true; fonts = { serif = { package = pkgs.dejavu_fonts; name = "DejaVu Serif"; }; sansSerif = { package = pkgs.dejavu_fonts; name = "DejaVu Sans"; }; monospace = { package = pkgs.dejavu_fonts; name = "DejaVu Sans Mono"; }; emoji = { package = pkgs.noto-fonts-emoji; name = "Noto Color Emoji"; }; }; }; services.xserver.videoDrivers = [ ] ++ lib.optional (builtins.isString gpu) gpu; # tuigreet services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; user = "greeter"; }; }; }; # Brightness and volume control # https://haikarainen.github.io/light/ programs.light.enable = true; # PolKit for the fingerprint reader security.polkit.enable = true; # https://github.com/NixOS/nixpkgs/issues/143365 security.pam.services.swaylock = {}; # Enabling hyprlnd on NixOS programs.hyprland = { enable = true; # enableNvidiaPatches = true; xwayland.enable = true; }; environment.sessionVariables = { # If your cursor becomes invisible, set this to 1 WLR_NO_HARDWARE_CURSORS = "0"; # Hint electron apps to use wayland NIXOS_OZONE_WL = "1"; }; # https://www.freedesktop.org/software/systemd/man/logind.conf.html services.logind.extraConfig = '' IdleActionSec=900 IdleAction=suspend-then-hibernate HandleLidSwitch=suspend-then-hibernate HandleLidSwitchDocked=ignore HandleLidSwitchExternalPower=suspend ''; # https://www.systutorials.com/docs/linux/man/5-systemd-sleep.conf/ # HibernateDelaySec is the amount of time the # system sleeps before entering hibernate when # using suspend-then-hibernate systemd.sleep.extraConfig = '' AllowSuspend=yes AllowHibernation=yes AllowSuspendThenHibernate=yes AllowHybridSleep=yes HibernateDelaySec=600 ''; # XDG portal xdg.portal.enable = true; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; # system packages environment.systemPackages = [ # waybar (pkgs.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; }) ) pkgs.libnotify # Notification libraries pkgs.mako # Notification daemon pkgs.swww # Wallpaper daemon pkgs.kitty # Terminal emulator pkgs.rofi-wayland # App Launcher pkgs.grim # Screenshots pkgs.slurp # Screenshots pkgs.wl-clipboard # Clipboard pkgs.font-awesome # Fonts pkgs.libinput-gestures # Gesture Control pkgs.playerctl # Control sublime-music from waybar? pkgs.pavucontrol # Pulse Audio Volume CONTROL pkgs.glib # Set GTK theme settings pkgs.greetd.tuigreet # Greeter pkgs.swayidle # Idle management daemon - Automatic lock screen pkgs.swayosd # used for on-screen notifications for things like adjusting backlight, volume, etc pkgs.wlogout # Logout/shutdown/hibernate/lock screen modal UI pkgs.ranger # TUI file manager pkgs.xdg-utils # Utilities for better X/Wayland integration pkgs.bitwarden-cli # Bitwarden for rofi pkgs.bitwarden-menu # Bitwarden for rofi pkgs.pulsemixer # TUI Pipewire / volume management pkgs.calcurse # TUI Calendar app pkgs.udiskie # Automatic device mounting # Themes pkgs.gruvbox-gtk-theme # Gruvbox Theme pkgs.papirus-icon-theme # Papirus Icons # wayland-packages inputs.nixpkgs-wayland.packages.${platform}.wayprompt # from nixpkgs-wayland exclusively - pinentry UI ]; # Enable sound with pipewire. sound.enable = true; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; }