nix-config/modules/desktops/hyprland.nix
2023-10-13 20:52:26 +02:00

89 lines
2.1 KiB
Nix

#
# Hyprland Configuration
# Enable with "hyprland.enable = true;"
#
{
config,
lib,
system,
pkgs,
unstable,
hyprland,
vars,
host,
...
}:
with lib;
with host; {
options = {
hyprland = {
enable = mkOption {
type = types.bool;
default = false;
};
};
};
config = mkIf (config.hyprland.enable) {
#wlwm.enable = true; # Wayland Window Manager
environment = {
# variables = {
# #WLR_NO_HARDWARE_CURSORS="1"; # Needed for VM
# #WLR_RENDERER_ALLOW_SOFTWARE="1";
# XDG_CURRENT_DESKTOP = "Hyprland";
# XDG_SESSION_TYPE = "wayland";
# XDG_SESSION_DESKTOP = "Hyprland";
# };
# sessionVariables =
# if hostName == "desktop"
# then {
# GBM_BACKEND = "nvidia-drm";
# #__GL_GSYNC_ALLOWED = "0";
# #__GL_VRR_ALLOWED = "0";
# #WLR_DRM_NO_ATOMIC = "1";
# __GLX_VENDOR_LIBRARY_NAME = "nvidia";
# #_JAVA_AWT_WM_NONREPARENTING = "1";
#
# QT_QPA_PLATFORM = "wayland";
# QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
#
# GDK_BACKEND = "wayland";
# WLR_NO_HARDWARE_CURSORS = "1";
# MOZ_ENABLE_WAYLAND = "1";
# NIXOS_OZONE_WL = "1";
# }
# else {
# QT_QPA_PLATFORM = "wayland";
# QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
#
# GDK_BACKEND = "wayland";
# WLR_NO_HARDWARE_CURSORS = "1";
# MOZ_ENABLE_WAYLAND = "1";
# };
systemPackages = with pkgs; [
grim # Grab Images
slurp # Region Selector
wl-clipboard # Clipboard
wlr-randr # Monitor Settings
];
};
programs = {
hyprland = {
# Window Manager
enable = true;
package = hyprland.packages.${pkgs.system}.hyprland;
nvidiaPatches =
if hostName == "desktop"
then true
else false;
};
};
nix.settings = {
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
}; # Cache
};
}