{ pkgs, lib, inputs, system, hyprcursor-size, xcursor-size, ... }: let terminal = "ghostty"; startScript = import ./hypr/exec.nix { inherit pkgs lib inputs system terminal xcursor-size ; }; mainMod = "SUPER"; window = import ./hypr/window.nix; windowrule = import ./hypr/windowrule.nix; input = import ./hypr/input.nix; plugins = import ./hypr/plugin.nix; cursorName = "catppuccin-macchiato-lavender-cursors"; getCurrentSong = pkgs.writeShellScriptBin "getSong" '' song_info=$(playerctl metadata --format '{{title}} 󰎆 {{artist}}') echo "$song_info" ''; hyprlockAccent = "lavender"; in { home.packages = with pkgs; [ hyprpaper hyprcursor ]; systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ]; wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; systemd.enable = false; package = inputs.hyprland.packages.${system}.hyprland; plugins = (with inputs.hyprland-plugins.packages.${system}; [ xtra-dispatchers hyprexpo hyprwinwrap ]) ++ ([ inputs.hyprgrass.packages.${system}.default ]); settings = { bind = import ./hypr/bind.nix { inherit mainMod; }; bindm = import ./hypr/bindm.nix { inherit mainMod; }; monitor = import ./hypr/monitor.nix; plugin = plugins; exec-once = ''${startScript}''; env = [ ''HYPRCURSOR_THEME, ${cursorName}'' ''HYPRCURSOR_SIZE, ${hyprcursor-size}'' ''XCURSOR_THEME, ${cursorName}'' ''XCURSOR_SIZE, ${xcursor-size}'' ''XDG_CURRENT_DESKTOP, Hyprland'' ''XDG_SESSION_DESKTOP, Hyprland'' ]; } // window // windowrule // input; }; services.hyprpaper = { enable = true; settings = { preload = [ "~/.config/wallpapers/wall.png" ]; wallpaper = [ ", ~/.config/wallpapers/wall.png" ]; splash = false; ipc = "on"; }; }; programs.hyprlock = { enable = true; importantPrefixes = [ "$" "monitor" "size" "source" ]; extraConfig = builtins.readFile ../config/hypr/hyprlock.conf + '' # CURRENT SONG label { monitor = text = cmd[update:1000] echo "$(${getCurrentSong}/bin/getSong)" color = rgba(235, 219, 178, .75) font_size = 16 font_family = $font, $font2 position = 0, 80 halign = center valign = bottom } ''; }; services.hypridle = { enable = true; settings = { general = { lock_cmd = "pidof hyprlock || hyprlock"; before_sleep_cmd = "loginctl lock-session"; after_sleep_cmd = "hyprctl dispatch dpms on"; ignore_dbus_inhibit = false; ignore_systemd_inhibit = false; }; listener = [ # 2.5min -> set monitor backlight to minimum { timeout = 150; on-timeout = "brightnessctl -s set 10"; on-resume = "brightnessctl -r"; } # 2.5min -> turn off keyboard backlight { timeout = 150; on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; on-resume = "brightnessctl -rd rgb:kbd_backlight"; } # 5min -> Lock screen { timeout = 300; on-timeout = "loginctl lock-session"; } # 5.5min -> Screen off { timeout = 330; on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } # 30min -> Suspend pc # { # timeout = 1800; # on-timeout = "systemctl suspend"; # } ]; }; }; }