{
config,
lib,
pkgs,
...
}: let
cfg = config.roles.hyprland;
in {
options.roles.hyprland = {
enable = lib.mkEnableOption "enable hyprland";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [pkgs.bemenu];
programs.hyprland.enable = true;
hm = {
wayland.windowManager.hyprland = {
enable = true;
settings = {
monitor = [
"eDP-1,1920x1080@60,0x0,1"
];
exec-once = [
"wpaperd"
];
general = {
border_size = 1;
gaps_in = 2;
gaps_out = 2;
};
decoration = {
rounding = false;
drop_shadow = false;
blur = {
enabled = false;
};
};
animations = {
enabled = false;
first_launch_animation = false;
};
input = {
kb_layout = "us,fi,no";
kb_options = "grp:win_space_toggle,ctrl:nocaps";
accel_profile = "flat";
touchpad = {
disable_while_typing = false;
};
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
"$mod" = "SUPER";
bind = [
"$mod, Return, exec, kitty"
"$mod SHIFT, return, exec, bemenu-run"
"$mod SHIFT, x, exec, hyprlock"
"$mod SHIFT, c, killactive"
"$mod SHIFT, q, exit"
"$mod, f, fullscreen, 0"
"$mod SHIFT, space, togglefloating"
"$mod, Tab, cyclenext,"
"$mod, Tab, bringactivetotop,"
"$mod, h, movefocus, l"
"$mod, j, movefocus, d"
"$mod, k, movefocus, u"
"$mod, l, movefocus, r"
"$mod SHIFT, h, movewindow, l"
"$mod SHIFT, j, movewindow, d"
"$mod SHIFT, k, movewindow, u"
"$mod SHIFT, l, movewindow, r"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
];
binde = [
"$mod CTRL, h, resizeactive, -10 0"
"$mod CTRL, j, resizeactive, 0 -10"
"$mod CTRL, k, resizeactive, 0 10"
"$mod CTRL, l, resizeactive, 10 0"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
};
};
services.hypridle = {
enable = true;
settings = {
listener = [
{
timeout = 500;
}
];
general.lock_cmd = "hyprlock";
};
};
programs.hyprlock = {
enable = true;
settings = {
background = [
{
path = "/home/skye/dev/femboys.png";
}
];
};
};
programs.wpaperd = {
enable = true;
settings = {
eDP-1 = {
path = "/home/skye/wallpapers/middleearth";
duration = "5m";
};
};
};
};
};
}