Modules/Hyprland: Configure hyprland plugins
This commit is contained in:
@ -205,4 +205,155 @@
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
|
||||
plugin = lib.mergeAttrsList [
|
||||
(lib.optionalAttrs hyprland.bars.enable {
|
||||
hyprbars = {
|
||||
enabled = true;
|
||||
|
||||
bar_height = 25;
|
||||
bar_blur = true;
|
||||
bar_color = "rgb(${color.hex.base})";
|
||||
col.text = "rgb(${color.hex.text})";
|
||||
|
||||
bar_title_enabled = true;
|
||||
bar_text_size = 12;
|
||||
bar_text_font = color.font;
|
||||
|
||||
bar_text_align = "center";
|
||||
bar_buttons_alignment = "left";
|
||||
|
||||
bar_part_of_window = true;
|
||||
bar_precedence_over_border = false;
|
||||
|
||||
# example buttons (R -> L)
|
||||
# hyprbars-button = color, size, on-click
|
||||
hyprbars-button = [
|
||||
"rgb(${color.hex.red}), 10, , hyprctl dispatch killactive"
|
||||
"rgb(${color.hex.green}), 10, , hyprctl dispatch fullscreen 1"
|
||||
];
|
||||
|
||||
# cmd to run on double click of the bar
|
||||
on_double_click = "hyprctl dispatch fullscreen 1";
|
||||
};
|
||||
})
|
||||
|
||||
(lib.optionalAttrs hyprland.dynamicCursor.enable {
|
||||
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;
|
||||
|
||||
# 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 = 2500;
|
||||
|
||||
# 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;
|
||||
};
|
||||
|
||||
# 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 = 3.0;
|
||||
|
||||
# magnification level immediately after shake start
|
||||
base = 1.5;
|
||||
# magnification increase per second when continuing to shake
|
||||
speed = 0.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 = 1000;
|
||||
|
||||
# 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";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
(lib.optionalAttrs hyprland.trails.enable {
|
||||
hyprtrails = {
|
||||
color = "rgb(${color.hex.accent})";
|
||||
};
|
||||
})
|
||||
|
||||
(lib.optionalAttrs hyprland.hyprspace.enable {
|
||||
overview = {};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
Reference in New Issue
Block a user