Files
nixos-config/modules/user/hyprland/zoom.nix
T
2026-09-16 19:42:53 +03:00

33 lines
1.0 KiB
Nix

{ lib, ... }:
let
hyprLua = import ./lua.nix { inherit lib; };
inherit (hyprLua) bind bindWithFlags;
resetZoom = ''function()
hl.config({ cursor = { zoom_factor = 1 } })
end'';
zoomIn = ''function()
local current = hl.get_config("cursor.zoom_factor")
hl.config({ cursor = { zoom_factor = current * 1.1 } })
end'';
zoomOut = ''function()
local current = hl.get_config("cursor.zoom_factor")
hl.config({ cursor = { zoom_factor = math.max(1, current * 0.9) } })
end'';
in {
wayland.windowManager.hyprland.settings.bind = [
(bind "SUPER + SHIFT + mouse_up" resetZoom)
(bind "SUPER + SHIFT + mouse_down" resetZoom)
(bind "SUPER + SHIFT + minus" resetZoom)
(bind "SUPER + SHIFT + KP_SUBTRACT" resetZoom)
(bind "SUPER + SHIFT + 0" resetZoom)
(bindWithFlags "SUPER + equal" zoomIn { repeating = true; })
(bindWithFlags "SUPER + minus" zoomOut { repeating = true; })
(bindWithFlags "SUPER + KP_ADD" zoomIn { repeating = true; })
(bindWithFlags "SUPER + KP_SUBTRACT" zoomOut { repeating = true; })
];
}