nixos/nate-work/modules/hypr/hypr_home.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;
};
};
};
}