mirror of
https://codeberg.org/muon/home.git
synced 2025-12-05 23:57:46 +00:00
72 lines
1.8 KiB
Nix
72 lines
1.8 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
osConfig,
|
|
...
|
|
}: {
|
|
options.mods.hyprland.enable = lib.mkEnableOption {
|
|
description = "enables hyprland";
|
|
default = false;
|
|
};
|
|
|
|
config = lib.mkIf config.mods.hyprland.enable {
|
|
programs.waybar.enable = true;
|
|
programs.fuzzel.enable = true;
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
xwayland.enable = true;
|
|
# systemd.enable = true;
|
|
settings = {
|
|
exec-once = "${lib.getExe pkgs.waybar}";
|
|
|
|
input = {
|
|
accel_profile = "flat";
|
|
|
|
kb_options = "caps:escape";
|
|
};
|
|
|
|
"$mod" = "SUPER";
|
|
bind =
|
|
[
|
|
"$mod, Return, exec, alacritty"
|
|
"$mod, D, exec, fuzzel"
|
|
"$mod, B, exec, qutebrowser"
|
|
|
|
"$mod SHIFT, Q, killactive,"
|
|
"$mod SHIFT, X, exit,"
|
|
|
|
"$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"
|
|
]
|
|
++ (builtins.concatLists (builtins.genList (
|
|
# workspaces
|
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
|
x: let
|
|
ws = let
|
|
c = (x + 1) / 10;
|
|
in
|
|
builtins.toString (x + 1 - (c * 10));
|
|
in [
|
|
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
|
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
|
]
|
|
)
|
|
10));
|
|
|
|
monitor =
|
|
lib.mapAttrsToList
|
|
(_: v: "${v.name},${v.config.mode}@${v.config.rate},${v.config.position},1")
|
|
osConfig.mods.monitors;
|
|
};
|
|
};
|
|
};
|
|
}
|