73 lines
2 KiB
Nix
73 lines
2 KiB
Nix
{ lib, config, pkgs, ... }:
|
|
let
|
|
cfg = config.homeModules.desktop.wayland.windowManager.hyprland;
|
|
in
|
|
{
|
|
imports = [
|
|
./binds.nix #hyprland keybindings
|
|
./appearance.nix
|
|
./rules.nix
|
|
./exec.nix
|
|
];
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
xdg.portal = {
|
|
extraPortals = [ pkgs.inputs.hyprland.xdg-desktop-portal-hyprland ];
|
|
configPackages = [ pkgs.inputs.hyprland.hyprland ];
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
inputs.hyprwm-contrib.grimblast
|
|
hyprpicker
|
|
light
|
|
hyprshade
|
|
];
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
package = pkgs.inputs.hyprland.hyprland;
|
|
systemd = {
|
|
enable = true;
|
|
extraCommands = lib.mkBefore [
|
|
"systemctl --user stop graphical-session.target"
|
|
"systemctl --user start hyprland-session.target"
|
|
];
|
|
};
|
|
settings = {
|
|
input = {
|
|
kb_layout = "us";
|
|
touchpad = {
|
|
disable_while_typing = false;
|
|
};
|
|
};
|
|
|
|
misc = {
|
|
vrr = true;
|
|
disable_hyprland_logo = true;
|
|
force_default_wallpaper = 0;
|
|
};
|
|
|
|
env = lib.mkIf cfg.nvidia [
|
|
"LIBVA_DRIVER_NAME,nvidia"
|
|
"XDG_SESSION_TYPE,wayland"
|
|
"GBM_BACKEND,nvidia-drm"
|
|
"__GLX_VENDEOR_LIBRARY_NAME,nvidia"
|
|
"WLR_NO_HARDWARE_CURSORS,1"
|
|
];
|
|
|
|
gestures = {
|
|
workspace_swipe = true;
|
|
workspace_swipe_forever = true;
|
|
};
|
|
|
|
monitor = lib.concatMap (m: let
|
|
resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}";
|
|
position = "${toString m.x}x${toString m.y}";
|
|
basicConfig = "${m.name},${if m.enabled then "${resolution},${position},1" else "disable"}";
|
|
in
|
|
[ basicConfig ] ++ (if m.transform != 0 then ["${m.name},transform,${toString m.transform}"] else [])
|
|
) (config.monitors);
|
|
};
|
|
};
|
|
};
|
|
}
|