{
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
pkgs.playerctl
];
programs.hyprland.enable = true;
security.pam.services.hyprlock = {};
hm = {
wayland.windowManager.hyprland = {
enable = true;
# NOTE: These are just the default settings.
settings = {
exec-once = [
"wpaperd -d"
];
input = {
kb_layout = "us,fi,no";
kb_options = "grp:win_space_toggle,ctrl:nocaps";
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, w, exec, wpaperctl next"
"$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, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
"$mod SHIFT, 5, movetoworkspace, 5"
"$mod SHIFT, 6, movetoworkspace, 6"
"$mod SHIFT, 7, movetoworkspace, 7"
"$mod SHIFT, 8, movetoworkspace, 8"
"$mod SHIFT, 9, movetoworkspace, 9"
];
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 = {
general = {
no_fade_in = true;
no_fade_out = true;
};
background = [
{
#path = "/home/skye/dev/femboys.png";
color = "rgba(0, 0, 0, 1.0)";
}
];
input-field = [
{
monitor = "";
size = "200, 50";
position = "0, 0";
}
];
};
};
programs.wpaperd.enable = true;
services.mako = {
enable = true;
maxVisible = 5;
defaultTimeout = 5000;
backgroundColor = "#7298bf";
textColor = "#e0c296";
borderColor = "#ffffff";
borderSize = 2;
};
programs.waybar = {
enable = true;
systemd.enable = false;
};
};
};
}