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;
|
|
};
|
|
};
|
|
};
|
|
}
|