121 lines
4.9 KiB
Lua
121 lines
4.9 KiB
Lua
hl.plugin("dynamic-cursors", function()
|
|
enabled = true
|
|
|
|
-- 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 = tilt
|
|
|
|
-- minimum angle difference in degrees after which the shape is changed
|
|
-- smaller values are smoother, but more expensive for hw cursors
|
|
threshold = 1
|
|
|
|
rotate {
|
|
-- length in px of the simulated stick used to rotate the cursor
|
|
-- most realistic if this is your actual cursor size
|
|
length = 30
|
|
|
|
-- clockwise offset applied to the angle in degrees
|
|
-- this will apply to ALL shapes
|
|
offset = 0.0
|
|
}
|
|
|
|
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 = 2000
|
|
|
|
-- 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 = 182
|
|
}
|
|
|
|
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 {
|
|
enabled = true
|
|
|
|
-- use nearest-neighbour (pixelated) scaling when shaking
|
|
-- may look weird when effects are enabled
|
|
nearest = false
|
|
|
|
-- controls how soon a shake is detected
|
|
-- lower values mean sooner
|
|
threshold = 2.2
|
|
|
|
-- magnification level immediately after shake start
|
|
base = 1.2
|
|
-- magnification increase per second when continuing to shake
|
|
speed = 7.0
|
|
-- how much the speed is influenced by the current shake intensitiy
|
|
influence = 6.0
|
|
|
|
-- maximal magnification the cursor can reach
|
|
-- values below 1 disable the limit (e.g. 0)
|
|
limit = 3.2
|
|
|
|
-- time in millseconds the cursor will stay magnified after a shake has ended
|
|
timeout = 1300
|
|
|
|
-- show cursor behaviour `tilt`, `rotate`, etc. while shaking
|
|
effects = true
|
|
|
|
-- enable ipc events for shake
|
|
-- see the `ipc` section below
|
|
ipc = false
|
|
}
|
|
|
|
-- 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
|
|
}
|
|
|
|
end)
|