{ ... }: let monitors = [ "DP-1" "DP-2" ]; in { imports = map (x: ../../../home-manager + x) [ "/features/astronomy.nix" "/features/development/development.nix" "/features/development/docker.nix" "/features/development/haskell.nix" "/features/development/markdown.nix" "/features/development/typescript.nix" "/features/development/vscode.nix" "/features/eww" "/features/gaming.nix" "/features/linux-desktop.nix" "/features/notes.nix" "/features/3d-printing.nix" ] ++ [ (import ../../../home-manager/features/wallpaper.nix monitors) ]; # This config file is needed for nix shell to allow unfree programs. I'm not # sure why this isn't a home-manager option. home.file.".config/nixpkgs/config.nix".text = '' { allowUnfree = true; } ''; home.stateVersion = "24.11"; home.username = "drew"; home.homeDirectory = "/home/drew"; programs.git = { userName = "Drew Haven"; userEmail = "drew.haven@gmail.com"; }; wayland.windowManager.hyprland.settings = { exec-once = [ # Set up eww here because it's based on the monitor configuration "sleep 2 && eww open-many primary-statusbar secondary-statusbar" # Set DP-2 as the primary monitor, otherwise it defaults to DP-1 because it's first in the list. "xrandr --output DP-2 --primary" ]; windowrulev2 = [ # Rofi doesn't center properly when I have the two asymetric monitors, so we need hyprland to manage it. "center, class:Rofi" ]; }; }