plugin:dynamic-cursors { # enables the plugin enabled = true # sets the cursor behaviour, supports these values: # tilt - tilt the cursor based on x-velocity # rotate - rotate the cursor based on movement direction # stretch - stretch the cursor shape based on direction and velocity # none - do not change the cursors behaviour mode = rotate # minimum angle difference in degrees after which the shape is changed # smaller values are smoother, but more expensive for hw cursors threshold = 2 # override the mode behaviour per shape # this is a keyword and can be repeated many times # by default, there are no rules added # see the dedicated `shape rules` section below! #shaperule = , (optional), : , ... #shaperule = , (optional), : , ... # for mode = rotate rotate { # length in px of the simulated stick used to rotate the cursor # most realistic if this is your actual cursor size length = 20 # clockwise offset applied to the angle in degrees # this will apply to ALL shapes offset = 0.0 } # for mode = tilt tilt { # controls how powerful the tilt is, the lower, the more power # this value controls at which speed (px/s) the full tilt is reached # the full tilt being 60° in both directions limit = 5000 # relationship between speed and tilt, supports these values: # linear - a linear function is used # quadratic - a quadratic function is used (most realistic to actual air drag) # negative_quadratic - negative version of the quadratic one, feels more aggressive # see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done function = negative_quadratic # time window (ms) over which the speed is calculated # higher values will make slow motions smoother but more delayed window = 100 } # for mode = stretch stretch { # controls how much the cursor is stretched # this value controls at which speed (px/s) the full stretch is reached # the full stretch being twice the original length limit = 3000 # relationship between speed and stretch amount, supports these values: # linear - a linear function is used # quadratic - a quadratic function is used # negative_quadratic - negative version of the quadratic one, feels more aggressive # see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done function = quadratic # time window (ms) over which the speed is calculated # higher values will make slow motions smoother but more delayed window = 100 } # configure shake to find # magnifies the cursor if its is being shaken shake { # enables shake to find enabled = true # use nearest-neighbour (pixelated) scaling when shaking # may look weird when effects are enabled nearest = true # controls how soon a shake is detected # lower values mean sooner threshold = 6.0 # magnification level immediately after shake start base = 4.0 # magnification increase per second when continuing to shake speed = 4.0 # how much the speed is influenced by the current shake intensitiy influence = 0.0 # maximal magnification the cursor can reach # values below 1 disable the limit (e.g. 0) limit = 0.0 # time in millseconds the cursor will stay magnified after a shake has ended timeout = 2000 # show cursor behaviour `tilt`, `rotate`, etc. while shaking effects = true # enable ipc events for shake # see the `ipc` section below ipc = true } # use hyprcursor to get a higher resolution texture when the cursor is magnified # see the `hyprcursor` section below hyprcursor { # use nearest-neighbour (pixelated) scaling when magnifing beyond texture size # this will also have effect without hyprcursor support being enabled # 0 / false - never use pixelated scaling # 1 / true - use pixelated when no highres image # 2 - always use pixleated scaling nearest = true # enable dedicated hyprcursor support enabled = true # resolution in pixels to load the magnified shapes at # be warned that loading a very high-resolution image will take a long time and might impact memory consumption # -1 means we use [normal cursor size] * [shake:base option] resolution = -1 # shape to use when clientside cursors are being magnified # see the shape-name property of shape rules for possible names # specifying clientside will use the actual shape, but will be pixelated fallback = clientside } } plugin { hyprbars { # example config bar_height = 20 # example buttons (R -> L) # hyprbars-button = color, size, on-click bar_color = rgb(000000) hyprbars-button = rgb(ff4040), 10, 󰖭, hyprctl dispatch killactive hyprbars-button = rgb(eeee11), 10, , hyprctl dispatch fullscreen 1 hyprbars-button = rgb(11ee11), 10, ¥, hyprctl dispatch togglefloating } hyprfocus { enabled = yes focus_animation = shrink bezier = bezIn, 0.5,0.0,1.0,0.5 bezier = bezOut, 0.0,0.5,0.5,1.0 flash { flash_opacity = 0.7 in_bezier = bezIn in_speed = 0.5 out_bezier = bezOut out_speed = 3 } shrink { shrink_percentage = 0.98 in_bezier = bezIn in_speed = 0.5 out_bezier = bezOut out_speed = 3 } } hyprtrails { color = rgba(ff0000ff) } hyprexpo { columns = 3 gap_size = 5 bg_col = rgb(111111) workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 enable_gesture = true # laptop touchpad, 4 fingers gesture_distance = 300 # how far is the "max" gesture_positive = true # positive = swipe down. Negative = swipe up. } } plugin:hyprwinwrap { # class is an EXACT match and NOT a regex! class = kitty-bg # you can also use title title = kitty-bg # you can add the position of the window in a percentage pos_x = 25 pos_y = 30 # you can add the size of the window in a percentage size_x = 40 size_y = 70 } #exec-once = hyprpm reload -n