299 lines
8.9 KiB
Nix
299 lines
8.9 KiB
Nix
{
|
|
config,
|
|
...
|
|
}:
|
|
{
|
|
wayland.windowManager.hyprland = with config.scheme; {
|
|
enable = true;
|
|
|
|
settings = {
|
|
# -----------------------------------------------------
|
|
# Environment Variables & Debug
|
|
# -----------------------------------------------------
|
|
env = [
|
|
"QT_QPA_PLATFORM,wayland"
|
|
"QT_QPA_PLATFORMTHEME,qt6ct"
|
|
"DISPLAY,:0"
|
|
"XCURSOR_THEME,${config.userOptions.cursor.name}"
|
|
"XCURSOR_SIZE,${toString config.userOptions.cursor.size}"
|
|
];
|
|
|
|
debug = {
|
|
disable_scale_checks = true;
|
|
};
|
|
|
|
# -----------------------------------------------------
|
|
# Monitors (Outputs)
|
|
# -----------------------------------------------------
|
|
monitor = [
|
|
"eDP-1, 3024x1964@120.000, 0x0, 1.5"
|
|
"HDMI-A-1, 3840x2160@144.000, 0x0, 1.5"
|
|
"DP-1, 3840x2160@143.999, 0x0, 1.5"
|
|
];
|
|
|
|
# -----------------------------------------------------
|
|
# Autostart
|
|
# -----------------------------------------------------
|
|
exec-once = [ ]; # systemd is based sorry
|
|
|
|
# -----------------------------------------------------
|
|
# Input
|
|
# -----------------------------------------------------
|
|
input = {
|
|
kb_layout = "us";
|
|
numlock_by_default = false;
|
|
repeat_delay = 600;
|
|
repeat_rate = 25;
|
|
|
|
follow_mouse = 1;
|
|
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
tap-to-click = false;
|
|
drag_lock = false;
|
|
};
|
|
};
|
|
|
|
device = [
|
|
{
|
|
name = "epic-mouse-v1";
|
|
accel_profile = "adaptive";
|
|
natural_scroll = false;
|
|
}
|
|
];
|
|
|
|
# -----------------------------------------------------
|
|
# General & Layout
|
|
# -----------------------------------------------------
|
|
general = {
|
|
gaps_in = 2;
|
|
gaps_out = 4;
|
|
border_size = 2;
|
|
|
|
"col.active_border" = "rgba(${config.scheme.${config.colors.accent}}E6)";
|
|
"col.inactive_border" = "rgba(${base01}E6)";
|
|
|
|
layout = "dwindle";
|
|
};
|
|
|
|
scrolling = {
|
|
column_width = 0.5;
|
|
follow_focus = true;
|
|
explicit_column_widths = "0.333,0.5,0.667";
|
|
direction = "right";
|
|
};
|
|
|
|
# -----------------------------------------------------
|
|
# Decoration (0.54 Syntax)
|
|
# -----------------------------------------------------
|
|
decoration = {
|
|
rounding = 8;
|
|
|
|
active_opacity = 0.90;
|
|
inactive_opacity = 0.90;
|
|
fullscreen_opacity = 1.0;
|
|
|
|
blur = {
|
|
enabled = true;
|
|
size = 3;
|
|
passes = 2;
|
|
noise = 0.05;
|
|
contrast = 1.0;
|
|
};
|
|
|
|
# Shadows now live in their own dedicated block
|
|
shadow = {
|
|
enabled = true;
|
|
range = 10;
|
|
render_power = 3;
|
|
color = "rgba(${base11}BF)";
|
|
};
|
|
};
|
|
|
|
# -----------------------------------------------------
|
|
# Misc Settings
|
|
# -----------------------------------------------------
|
|
misc = {
|
|
disable_hyprland_logo = true;
|
|
disable_splash_rendering = true;
|
|
};
|
|
|
|
# -----------------------------------------------------
|
|
# Window Rules (0.54 Block Syntax)
|
|
# -----------------------------------------------------
|
|
windowrule = [
|
|
{
|
|
name = "games-openmw";
|
|
"match:class" = "^(openmw)$";
|
|
opacity = "1.0 1.0";
|
|
maximize = "on";
|
|
}
|
|
{
|
|
name = "games-minecraft";
|
|
"match:class" = "^(Minecraft)$";
|
|
opacity = "1.0 1.0";
|
|
maximize = "on";
|
|
}
|
|
{
|
|
name = "media-mpv";
|
|
"match:class" = "^(mpv)$";
|
|
opacity = "1.0 1.0";
|
|
}
|
|
{
|
|
name = "media-pip";
|
|
"match:class" = "^(firefox)$";
|
|
"match:title" = "^(Picture-in-Picture)$";
|
|
opacity = "1.0 1.0";
|
|
float = "on";
|
|
}
|
|
{
|
|
name = "terminal-fastfetch";
|
|
"match:class" = "^(kitty)$";
|
|
"match:title" = "^(fastfetch)$";
|
|
float = "on";
|
|
size = "960 480";
|
|
center = "on";
|
|
}
|
|
];
|
|
|
|
# -----------------------------------------------------
|
|
# Layer Rules (0.54 Block Syntax)
|
|
# -----------------------------------------------------
|
|
layerrule = [
|
|
{
|
|
name = "bar-blur";
|
|
"match:namespace" = "^(noctalia-bar-content-.*)$";
|
|
blur = "on";
|
|
ignore_alpha = "0";
|
|
}
|
|
{
|
|
name = "launcher-blur";
|
|
"match:namespace" = "^(launcher)$";
|
|
blur = "on";
|
|
ignore_alpha = "0";
|
|
}
|
|
];
|
|
|
|
# -----------------------------------------------------
|
|
# Keybindings
|
|
# -----------------------------------------------------
|
|
"$mod" = "SUPER";
|
|
|
|
bind = [
|
|
"$mod, T, exec, kitty"
|
|
"$mod SHIFT, T, exec, kitty --title fastfetch sh -c 'fastfetch; sleep 10'"
|
|
"$mod, Space, exec, fuzzel"
|
|
", XF86Search, exec, fuzzel"
|
|
|
|
"$mod, M, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
", XF86AudioPrev, exec, playerctl previous"
|
|
", XF86AudioPlay, exec, playerctl play-pause"
|
|
", XF86AudioNext, exec, playerctl next"
|
|
|
|
"$mod, Q, killactive,"
|
|
"$mod SHIFT, E, exit,"
|
|
"CTRL ALT, Delete, exit,"
|
|
"$mod, V, togglefloating,"
|
|
"$mod SHIFT, F, fullscreen, 1"
|
|
"$mod CTRL SHIFT, F, fullscreen, 0"
|
|
"$mod, W, togglegroup,"
|
|
|
|
"$mod SHIFT, left, focusmonitor, l"
|
|
"$mod SHIFT, down, focusmonitor, d"
|
|
"$mod SHIFT, up, focusmonitor, u"
|
|
"$mod SHIFT, right, focusmonitor, r"
|
|
"$mod SHIFT, H, focusmonitor, l"
|
|
"$mod SHIFT, J, focusmonitor, d"
|
|
"$mod SHIFT, K, focusmonitor, u"
|
|
"$mod SHIFT, L, focusmonitor, r"
|
|
|
|
"$mod SHIFT CTRL, left, movewindow, mon:l"
|
|
"$mod SHIFT CTRL, down, movewindow, mon:d"
|
|
"$mod SHIFT CTRL, up, movewindow, mon:u"
|
|
"$mod SHIFT CTRL, right, movewindow, mon:r"
|
|
|
|
"$mod, Page_Down, workspace, e+1"
|
|
"$mod, Page_Up, workspace, e-1"
|
|
"$mod, U, workspace, e+1"
|
|
"$mod, I, workspace, e-1"
|
|
"$mod, mouse_down, workspace, e+1"
|
|
"$mod, mouse_up, workspace, e-1"
|
|
|
|
"$mod CTRL, Page_Down, movetoworkspace, e+1"
|
|
"$mod CTRL, Page_Up, movetoworkspace, e-1"
|
|
"$mod CTRL, U, movetoworkspace, e+1"
|
|
"$mod CTRL, I, movetoworkspace, e-1"
|
|
|
|
"$mod SHIFT, S, exec, grim -g \"$(slurp)\" ~/Pictures/Screenshots/$(date +'%%a %%b %%e %%Y @%%l:%%M %%p').png"
|
|
"CTRL SHIFT, S, exec, grim ~/Pictures/Screenshots/$(date +'%%a %%b %%e %%Y @%%l:%%M %%p').png"
|
|
|
|
"$mod SHIFT, P, dpms, off"
|
|
", XF86Sleep, dpms, off"
|
|
]
|
|
++ (builtins.concatLists (
|
|
builtins.attrValues (
|
|
builtins.mapAttrs
|
|
(key: dir: [
|
|
"$mod, ${key}, movefocus, ${dir}"
|
|
"$mod CTRL, ${key}, movewindow, ${dir}"
|
|
])
|
|
{
|
|
left = "l";
|
|
right = "r";
|
|
up = "u";
|
|
down = "d";
|
|
H = "l";
|
|
L = "r";
|
|
K = "u";
|
|
J = "d";
|
|
}
|
|
)
|
|
))
|
|
++ (builtins.concatLists (
|
|
builtins.genList (
|
|
x:
|
|
let
|
|
ws =
|
|
let
|
|
c = (x + 1) / 10;
|
|
in
|
|
builtins.toString (x + 1 - (c * 10));
|
|
in
|
|
[
|
|
"$mod, ${ws}, workspace, ${ws}"
|
|
"$mod CTRL, ${ws}, movetoworkspace, ${ws}"
|
|
]
|
|
) 9
|
|
));
|
|
|
|
binde = [
|
|
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"
|
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"
|
|
"SHIFT, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01+"
|
|
"SHIFT, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01-"
|
|
|
|
", MouseForward, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"
|
|
", MouseBack, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"
|
|
"SHIFT, MouseForward, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01+"
|
|
"SHIFT, MouseBack, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01-"
|
|
|
|
", XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase"
|
|
", XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease"
|
|
"SHIFT, XF86MonBrightnessUp, exec, brightnessctl --class=backlight set +1%"
|
|
"SHIFT, XF86MonBrightnessDown, exec, brightnessctl --class=backlight set 1%-"
|
|
|
|
"$mod, equal, resizeactive, 40 0"
|
|
"$mod, minus, resizeactive, -40 0"
|
|
"$mod SHIFT, equal, resizeactive, 0 40"
|
|
"$mod SHIFT, minus, resizeactive, 0 -40"
|
|
];
|
|
|
|
bindm = [
|
|
"$mod, mouse:272, movewindow"
|
|
"$mod, mouse:273, resizewindow"
|
|
];
|
|
};
|
|
};
|
|
}
|