69 lines
1.8 KiB
Nix
69 lines
1.8 KiB
Nix
{ config, pkgs, ... }:
|
|
{
|
|
# Enable Hyprland compositor
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
package = pkgs.hyprland;
|
|
xwayland.enable = true;
|
|
# Autostart using systemd
|
|
systemd.enable = true;
|
|
extraConfig = ''
|
|
exec-once = waybar
|
|
exec-once = swaync
|
|
|
|
# Monitor settings
|
|
monitor = eDP-2, 2560x1600@165, 0x0, auto # main laptop monitor
|
|
monitor = DP-3, 1920x1080@119.98, -1280x-1080, auto # left external monitor
|
|
monitor = DP-2, 1920x1080@119.98, 640x-1080, auto # right external monitor
|
|
|
|
debug:disable_logs = false
|
|
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
bindm = $mod, mouse:272, movewindow
|
|
bindm = $mod, mouse:273, resizewindow
|
|
|
|
xwayland {
|
|
force_zero_scaling = true
|
|
}
|
|
'';
|
|
};
|
|
# Hyprland configuration
|
|
wayland.windowManager.hyprland.settings = {
|
|
"$mod" = "SUPER";
|
|
input = { kb_layout = "gb"; };
|
|
bind =
|
|
[
|
|
# Keybinds for starting programs
|
|
"$mod, F, exec, firefox"
|
|
"$mod, 1, exec, alacritty"
|
|
"$mod, D, exec, vesktop"
|
|
"$mod, space, exec, anyrun"
|
|
|
|
# Screenshot tool
|
|
", Print, exec, grimblast copy area"
|
|
|
|
# Screen locking tool
|
|
"$mod, l, exec, hyprlock"
|
|
|
|
# Window management
|
|
"$mod, x, killactive"
|
|
"$mod, tab, togglefloating"
|
|
]
|
|
++ (
|
|
# workspaces
|
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
|
builtins.concatLists (builtins.genList (
|
|
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)
|
|
);
|
|
};
|
|
}
|