diff --git a/modules/desktop-environments/hyprland/config/hypr/default.nix b/modules/desktop-environments/hyprland/config/hypr/default.nix index 0cb0ed0..b174c16 100755 --- a/modules/desktop-environments/hyprland/config/hypr/default.nix +++ b/modules/desktop-environments/hyprland/config/hypr/default.nix @@ -114,6 +114,7 @@ in monitor = [ "DP-1,3840x2160@240.00000,0x0,1" "DP-2,3840x2160@240.00000,3840x0,1" + "HDMI-A-1,1920x1080@60.00000,0x0,1" ]; misc = { diff --git a/modules/desktop-environments/hyprland/home.nix b/modules/desktop-environments/hyprland/home.nix index 295bf8a..851aad1 100755 --- a/modules/desktop-environments/hyprland/home.nix +++ b/modules/desktop-environments/hyprland/home.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ lib, pkgs, ... }: let wallpaper = "/home/matt/.config/wallpapers/wall.png"; cursorTheme = "macOS"; @@ -35,6 +35,84 @@ in ./config/wofi ]; + wayland.windowManager.hyprland = { + enable = true; + plugins = with pkgs.hyprlandPlugins; [ + hyprgrass + ]; + settings = { + plugin = { + touch_gestures = { + # The default sensitivity is probably too low on tablet screens, + # I recommend turning it up to 4.0 + sensitivity = "4.0"; + + # must be >= 3 + workspace_swipe_fingers = "3"; + + # switching workspaces by swiping from an edge, this is separate from workspace_swipe_fingers + # and can be used at the same time + # possible values: l, r, u, or d + # to disable it set it to anything else + workspace_swipe_edge = "d"; + + # in milliseconds + long_press_delay = "400"; + + # resize windows by long-pressing on window borders and gaps. + # If general:resize_on_border is enabled, general:extend_border_grab_area is used for floating + # windows + resize_on_border_long_press = true; + + # in pixels, the distance from the edge that is considered an edge + edge_margin = "10"; + + # emulates touchpad swipes when swiping in a direction that does not trigger workspace swipe. + # ONLY triggers when finger count is equal to workspace_swipe_fingers + # + # might be removed in the future in favor of event hooks + emulate_touchpad_swipe = false; + + experimental = { + # send proper cancel events to windows instead of hacky touch_up events, + # NOT recommended as it crashed a few times, once it's stabilized I'll make it the default + send_cancel = "0"; + }; + + hyprgrass-bind = [ + # swipe left from right edge + ", edge:r:l, workspace, +1" + + # swipe up from bottom edge + ", edge:d:u, exec, firefox" + + # swipe down from left edge + ", edge:l:d, exec, pactl set-sink-volume @DEFAULT_SINK@ -4%" + + # swipe down with 4 fingers + ", swipe:4:d, killactive" + + # swipe diagonally left and down with 3 fingers + # l (or r) must come before d and u + ", swipe:3:ld, exec, foot" + + # tap with 3 fingers + ", tap:3, exec, foot" + + # longpress can trigger mouse binds: + ", longpress:2, movewindow" + ", longpress:3, resizewindow" + ]; + }; + }; + + gestures = { + workspace_swipe = lib.mkForce true; + workspace_swipe_cancel_ratio = "0.15"; + }; + }; + }; + services = { hyprpaper = { enable = true; diff --git a/share/home/defaults.nix b/share/home/defaults.nix index e7e33e1..5daae55 100644 --- a/share/home/defaults.nix +++ b/share/home/defaults.nix @@ -49,6 +49,7 @@ sensibleOnTop = true; focusEvents = true; newSession = true; + mouse = true; plugins = with pkgs; [ tmuxPlugins.cpu {