84 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ inputs, lib, config, pkgs, ... }:
 | 
						|
# let
 | 
						|
#   unstable = import inputs.nixpkgs-unstable { system = "x86_64-linux"; config.allowUnfree = true; };
 | 
						|
# in
 | 
						|
{
 | 
						|
  options.hyprhome = {
 | 
						|
    enable = lib.mkEnableOption "Enable hyprland home config";
 | 
						|
    homePackages = lib.mkOption {
 | 
						|
        default = [];
 | 
						|
        description = "Add any additional packages desired. Merged with hyprland defaults.";
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  config = lib.mkIf config.hyprhome.enable {
 | 
						|
    # Note: We don't use wayland.windowManager.hyprland.enable
 | 
						|
    # because it generates config files that conflict with our dotfiles.
 | 
						|
    # Instead, we install hyprland via packages and manage config manually.
 | 
						|
 | 
						|
    # Import systemd variables for hyprland
 | 
						|
    systemd.user.sessionVariables = {
 | 
						|
      WAYLAND_DISPLAY = "wayland-1";
 | 
						|
      XDG_CURRENT_DESKTOP = "Hyprland";
 | 
						|
    };
 | 
						|
 | 
						|
    home.pointerCursor = {
 | 
						|
      gtk.enable = true;
 | 
						|
      hyprcursor.enable = true;
 | 
						|
      x11.enable = true;
 | 
						|
      hyprcursor.size = 32;
 | 
						|
      name = "Bibata-Modern-Classic";
 | 
						|
      package = pkgs.bibata-cursors;
 | 
						|
      size = 32;
 | 
						|
    };
 | 
						|
    # home.sessionVariables = {
 | 
						|
    # };
 | 
						|
    home.packages = with pkgs; lib.lists.flatten [
 | 
						|
      [
 | 
						|
        ### hyprland packages
 | 
						|
        swaybg
 | 
						|
        swaylock-effects
 | 
						|
        waybar
 | 
						|
        wofi
 | 
						|
        # NWG
 | 
						|
        nwg-bar
 | 
						|
        nwg-menu
 | 
						|
        nwg-look
 | 
						|
        nwg-dock-hyprland
 | 
						|
        nwg-panel
 | 
						|
        nwg-drawer
 | 
						|
        nwg-launchers
 | 
						|
        # Hypr Utils
 | 
						|
        hyprpicker
 | 
						|
        hyprshot
 | 
						|
        hypridle
 | 
						|
        kanshi
 | 
						|
        # Etc
 | 
						|
        gopsuinfo # For system stats in panel
 | 
						|
        wl-clipboard # System clipboard
 | 
						|
        brightnessctl
 | 
						|
        wev
 | 
						|
        wdisplays
 | 
						|
        # Notifs
 | 
						|
        libnotify
 | 
						|
        swaynotificationcenter
 | 
						|
        # Tray Applets
 | 
						|
        networkmanagerapplet
 | 
						|
        pavucontrol
 | 
						|
        syncthingtray
 | 
						|
        tailscale-systray
 | 
						|
        # include portals here for flatpak
 | 
						|
        xdg-desktop-portal-hyprland
 | 
						|
        xdg-desktop-portal-gtk
 | 
						|
      ]
 | 
						|
      config.hyprhome.homePackages
 | 
						|
    ];
 | 
						|
    programs.cava = {
 | 
						|
      enable = true;
 | 
						|
      settings = {
 | 
						|
        smoothing.noise_reduction = 55;
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |